[英]Webpack UglifyJS running into unexpected token
我正在尝试建立一个开发样板,该样板也可以轻松地将Vue.js项目推送到NPM。
我的webpack.prod.js
文件遇到问题,错误是:
ERROR in build.js from UglifyJs
Unexpected token: operator (>)
要丑化的代码是:
// minify with dead-code elimination
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
这是我的项目以及似乎出错的确切文件:
https://github.com/stephan-v/vue-inline-svg/blob/master/webpack/webpack.prod.js
当我运行npm run production
时,该项目使用Babel转换为ES6,将Webpack转换为UMD格式。 此命令使用webpack.prod.js
配置。
我可能看不到容易解决的问题,但是我不知道这里出了什么问题。
使用webpack简单存储库中的.babelrc
文件解决了我的问题。 我不知道这是怎么回事:
{
"presets": [
["env", { "modules": false }]
]
}
据我所知, .babelrc
包含一些插件和选项,可告诉babel如何转换我的代码。
我修改了modules
选项的确切含义是:
https://babeljs.io/docs/plugins/preset-env/#optionsmodules
它说如下:
“ amd” | “ umd” | “ systemjs” | “ commonjs” | false,默认为“ commonjs”。
启用将ES6模块语法转换为其他模块类型的功能。
将此设置为false不会转换模块。
因为我希望所有用户都可以使用我的软件包,并且我的webpack
生产配置使用:
libraryTarget: 'umd'
要将我的代码编译为umd
格式,这是否与"modules": false
不冲突"modules": false
虽然是"modules": false
?
我也习惯在.babelrc
文件中看到es2015
预设。 这无处可寻。 现在是默认设置吗?
似乎es2015
选项已被完全删除:
https://github.com/vuejs-templates/webpack/commit/424cd3f6d101ffeb57f48bca55d7951b35af60e0
从到目前为止的内容来看,这是因为Webpack 2已经知道如何原生使用ES6模块,因此"modules": false
禁用并防止babel进行编译。
随时发表评论,并在任何这方面纠正我。 我将其保存下来,以备将来参考,并让其他人看看谁也可能偶然发现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.