[英]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
時遇到的錯誤:
來自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
沒有遇到任何問題。)
這可能是因為您使用的node
版本可能不支持es6語法。
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得以解決。
和平!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.