这是相关代码(我使用的是Vue.js的Webpack官方模板):
.babelrc:
"presets": [
"babel-preset-es2015",
"babel-preset-stage-2",
]
webpack.prod.config.js
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false,
drop_console: shouldDropConsole
},
sourceMap: true
}),
这是我执行 npm run build
时遇到的错误:
ERROR in static/js/vendor.a6271913414e87e123c2.js from UglifyJs Unexpected token: name (_months) [./node_modules/calendar-js/index.js:56,0][static/js/vendor.a6271913414e87e123c2.js:90602,6]
这是有问题的行:
let _months = MONTHS;
(如果我将所有 let
替换为 var
,则项目构建不会出现问题。而 const
则不会”似乎不会打扰 Webpack/UglifyJS。)
我是否需要配置一些东西,以便 Webpack/UglifyJS 构建包含 let
的 Node 模块? (我的实际项目中的 let
不会给我带来问题。)
最佳答案
这可能是因为您可能使用的是旧版本的 node
,它不支持 es6 语法。
let
、const
、箭头函数等都是 es6 语法的一部分。要了解更多信息,请点击此链接 http://es6-features.org/
您的其他项目可能需要旧版本的 node
,因此请安装 nvm。 NVM 是一个 Node 版本管理器,它将帮助您轻松地在 Node 版本之间切换。点击链接获取文档和安装过程 https://github.com/creationix/nvm
Node v6+ 支持 ES6 语法,请尝试升级到该语法。
更新
根据此答案的评论,已确认这不是版本问题,并通过关注此 GitHub 问题线程 https://github.com/joeeames/WebpackFundamentalsCourse/issues/3 得到解决。 .
和平!
关于javascript - Webpack 的 UglifyJsPlugin 会抛出包含 let 的 Node 模块错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47899897/