我使用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')'(注意./) –