这是相关代码(我使用的是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中的错误Unexpected token:name(_months)[。/ node_modules / calendar-js / index.js:56,0] [static / js / vendor.a6271913414e87e123c2.js:90602, 6]
这是违规行:
let _months = MONTHS;
(如果我将所有let
替换为var
s,那么该项目的构建没有问题。而const
似乎并不打扰Webpack / UglifyJS。)
我是否需要配置一些东西,以便Webpack / UglifyJS构建包含let
的节点模块? (我实际项目中的let
不会给我带来麻烦。)
这可能是因为您可能正在使用不支持es6语法的旧版node
。
let
,const
,arrow函数等是es6语法的一部分。要了解更多信息,请点击此链接http://es6-features.org/
您可能需要旧版本的node
用于其他项目,因此请安装nvm。 NVM是一个节点版本管理器,可以帮助您轻松切换节点版本。请按照文档和安装过程https://github.com/creationix/nvm的链接进行操作
Node v6 +支持ES6语法尝试升级到那个。
UPDATE
在这个答案的评论中,它确认它不是一个版本问题,并通过遵循这个GitHub问题线程https://github.com/joeeames/WebpackFundamentalsCourse/issues/3得到解决。
和平!