这是相关代码(我使用的是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
时遇到的错误:
来自UglifyJs的static / js / vendor.a6271913414e87e123c2.js中的错误 意外的令牌:名称(_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
的节点模块? (我实际项目中的let
不会给我带来麻烦。)
答案 0 :(得分:1)
这可能是因为您可能使用的旧版arr
不支持es6语法。
node
,let
,箭头函数等是es6语法的一部分。要了解更多信息,请点击此链接http://es6-features.org/
您可能需要为其他项目使用旧版const
,因此请安装nvm。 NVM是一个节点版本管理器,可以帮助您轻松切换节点版本。请按照文档和安装过程https://github.com/creationix/nvm
Node v6 +支持ES6语法尝试升级到那个。
<强>更新强>
在这个答案的评论中,确认它不是版本问题,并通过遵循此GitHub问题线程https://github.com/joeeames/WebpackFundamentalsCourse/issues/3得到解决。
和平!