【发布时间】:2017-10-19 18:45:15
【问题描述】:
我正在使用带有 gulp-webpack 的 gulpfile - 我想将我的 javascript 代码拆分为不同的模块,并将它们捆绑到一个缩小的文件中。
以下是我所拥有的代码的 sn-ps:
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')(注意./)
标签: javascript webpack module