我使用gulp-webpack的gulpfile - 我想將我的JavaScript代碼分成不同的模塊,並將它們捆綁到一個單一的縮小文件中。如何使用webpack導入組件?
下面是我對代碼片段:
function.js:
var $ = require('jquery');
function init() {
console.log("piped");
// main expansion element
$(".button").click(function() {
// code goes here, etc
});
}
module.exports = init;
的script.js
import script from './app/js/function.js';
module.exports = script;
的WebPack-config.js
var debug = process.env.NODE_ENV !== "production";
var webpack = require('webpack');
module.exports = {
context: __dirname,
devtool: debug ? "inline-sourcemap" : null,
entry: "./app/js/script.js",
output: {
path: __dirname + "public/javascripts",
filename: "scripts.min.js"
},
plugins: debug ? [] : [
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }),
],
};
Gulptask:
gulp.task('scripts', function() {
gulp.src('app/js/script.js')
.pipe(webpack(require('./webpack.config.js')))
.pipe(gulp.dest('public/javascripts'))
.pipe(livereload());
});
這其中,我迷路了 - 我的任務就是成功輸出scripts.min.js
文件到正確的目錄,但我得到這個錯誤:
Uncaught SyntaxError: Unexpected token import
我不是正確導入進口?我指的是這個文檔https://webpack.js.org/guides/code-splitting/,它建議您簡單地使用import語句並將其指向您所引用的文件。
編輯:噴粉關閉我的WebPack知識,這樣:
我改變:
import function from './app/js/function.js';
module.exports = script;
要:
var function = require('function.js');
module.exports = function;
但我的控制檯現在又說:
ERROR in ./app/js/script.js
Module not found: Error: Cannot resolve module 'script.js' in /projects/new-platform-prototype/app/js
@ ./app/js/script.js 1:10-27
即使腳本在那裏?
'require('function.js')'假定文件位於模塊目錄(node_modules)內。要引用本地文件,最簡單的方法是編寫'require('./function.js')'(注意./) –