webpack -p cli命令无法uglify es2015代码
的package.json
"devDependencies": {
"babel": "^6.5.2",
"babel-core": "^6.13.2",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.13.2"
}
webpack.config.js
var webpack = require("webpack");
var config = {
entry: './src/app.js',
devtool: "source-map",
output: {
path: '../Scripts',
filename: 'bundle.js'
},
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader',
query: {
presets: ['es2015']
},
include: ["./src"],
exclude: /node_modules/
}
]
}
}
module.exports = config;
运行webpack -p
ERROR in bundle.js from UglifyJs
Unexpected character '`' [./src/LineEndRenderer.js:33,0]
(使用es2015模板字符串)
正常运行webpack -d
。
答案 0 :(得分:1)
github上的用户(fulls1z3)想出了一个不需要babel的solution(见2016年11月26日发布):
这是一份副本:
webpack#2用户,我特此尝试提供详细说明,以便将UglifyJs2的Harmony分支与webpack一起使用:
- Fork webpack,
- 在该分支上,删除除master之外的所有分支
- 将主分支克隆到本地文件夹,
- 在本地文件夹中,删除所有文件
- 提交空本地文件夹
- 下载最新版本(例如:v2.1.0-beta.27)
- 将zip文件的内容解压缩到本地文件夹
在本地文件夹中,编辑forked package.json,更改
"uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony"
将UglifyJs2(和谐分支)依赖指向该分支。提交更改,
- 最后,将package.json中的webpack指向自定义fork:
"webpack": "[USERNAME]/webpack#master"
OR,
- 将package.json中的webpack指向fulls1z3/webpack(ES6 / ES2015友好的webpack fork):
"webpack": "fulls1z3/webpack#v2.1.0-beta.27-harmony"
我在全球范围内使用webpack,所以我也必须运行它:
npm install yargs supports-color enhanced-resolve explain tapable webpack-sources source-map uglify-js object-assign async loader-runner acorn watchpack mkdirp ajv ajv-keywords node-libs-browser -g
然后我用https://github.com/fulls1z3/webpack/releases
替换了我的全球webpack
npm文件夹webpack-2.1.0-beta.27-harmony.zip
最后,我使用https://github.com/mishoo/UglifyJS2/tree/harmony
中的uglify-js
替换了我的全球UglifyJS2-harmony.zip
npm文件夹