Webpack 的 UglifyJsPlugin 对包含 let 的节点模块抛出错误
Webpack's UglifyJsPlugin throws error with Node modules containing let
这是相关代码(我用的是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
的节点模块? (我的实际项目中的 let
不会给我带来问题。)
这可能是因为您使用的 node
旧版本不支持 es6 语法。
let
、const
、箭头函数等是 es6 语法的一部分。要了解更多信息,请关注此 link http://es6-features.org/
您的其他项目可能需要旧版本的 node
,因此请安装 nvm。 NVM 是一个节点版本管理器,可以帮助您轻松地在节点版本之间切换。按照 link 获取文档和安装过程 https://github.com/creationix/nvm
Node v6+ 支持 ES6 语法尝试升级到那个。
更新
根据此答案的评论,已确认这不是版本问题,并已通过关注此 GitHub 问题线程 https://github.com/joeeames/WebpackFundamentalsCourse/issues/3.
得到解决
和平!
这是相关代码(我用的是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
的节点模块? (我的实际项目中的 let
不会给我带来问题。)
这可能是因为您使用的 node
旧版本不支持 es6 语法。
let
、const
、箭头函数等是 es6 语法的一部分。要了解更多信息,请关注此 link http://es6-features.org/
您的其他项目可能需要旧版本的 node
,因此请安装 nvm。 NVM 是一个节点版本管理器,可以帮助您轻松地在节点版本之间切换。按照 link 获取文档和安装过程 https://github.com/creationix/nvm
Node v6+ 支持 ES6 语法尝试升级到那个。
更新
根据此答案的评论,已确认这不是版本问题,并已通过关注此 GitHub 问题线程 https://github.com/joeeames/WebpackFundamentalsCourse/issues/3.
得到解决和平!