【发布时间】:2017-12-04 10:07:02
【问题描述】:
我目前正在发现模块捆绑器“Webpack”。我正在尝试做一些非常简单的事情:我有一个main.js 条目和一个bundle.js 输出。我使用 babel 来翻译 ES6。
我的 package.json :
{
"name": "me",
"version": "1.0.0",
"description": "Builder",
"main": "index.js",
"scripts": {
...
},
"author": "me",
"license": "ISC",
"devDependencies": {
"babel": "^6.23.0",
"babel-core": "^6.25.0",
"babel-loader": "^7.1.1",
"babel-preset-env": "^1.5.2",
"babel-preset-es2015": "^6.24.1",
"gulp": "^3.9.1",
"lodash": "^4.17.4",
"webpack": "^3.0.0",
"webpack-stream": "^3.2.0"
},
"dependencies": {
"jquery": "^3.2.1"
}
}
Webpack.config.js:
var path = require('path');
var webpack = require('webpack');
module.exports = {
entry: path.resolve(__dirname, 'js/main.js'),
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['es2015']
}
}
}
]
},
plugins: [
new webpack.optimize.UglifyJsPlugin()
]
}
当我在 CLI 中提示 webpack 时,它运行良好,在 dist 文件夹中创建了一个缩小的 bundle.js 文件。
现在,我想和 Gulp 结合
这是我的gulpfile.js:
var gulp = require('gulp');
var webpackS = require('webpack-stream');
gulp.task('default', function() {
return gulp.src('./app/js/main.js')
.pipe(webpackS( require('./app/webpack.config.js') ))
.pipe(gulp.dest('./app/dist/'));
});
当我在 CLI 中输入 gulp 时,出现此错误:
stream.js:74
throw er; // Unhandled stream error in pipe.
^
Error: bundle.js from UglifyJs
Unexpected token: name (_) [bundle.js:47,8]
但是,当我从 webpack.config.js 中删除行 new webpack.optimize.UglifyJsPlugin() 并在 CLI 中提示 gulp 时,它可以完美运行!
我重新安装了所有的 npm 包,但问题仍然存在。
有人有想法吗?
【问题讨论】:
标签: javascript webpack gulp