javascript - Webpack 的 UglifyJsPlugin 会抛出包含 let 的 Node 模块错误

标签 javascript node.js webpack vue.js uglifyjs2

这是相关代码(我使用的是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 语法。

letconst、箭头函数等都是 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/

相关文章:

javascript - 根据内容为 DOM 中的元素添加类

javascript - Safari Jquery 事件处理程序延迟

javascript - 部署Node App后如何在Heroku上安装依赖项?

javascript - Phonegap InAppBrowser 显示 pdf 2.7.0

javascript - 如何仅禁用字符串部分而不是数字的粘贴选项?

javascript - 使用 fs.open 和 fs.write 专门写入一个文件

node.js - supertest代理似乎没有在node.jsexpress.js应用程序中保留 session

javascript - Webpack 极慢构建

javascript - Webpack 自定义插件。使用 AST 在 React 组件中插入属性

javascript - 如何使用 webpack 包含 worker/process 文件