来自UglifyJs的bundle.js中的错误名称

时间:2017-08-24 20:37:08

标签: javascript reactjs webpack ecmascript-6 uglifyjs

我正在尝试使用 UglifyJS 来最小化/压缩我的bundle.js文件。当我运行webpack -p时,我得到以下内容:

ERROR in bundle.js from UglifyJs Name expected [bundle.js:105519,6]

第105519行如下:

const {M, l, pattern} = __webpack_require__(862)

我正在使用React w / ES6。对于什么是错的任何想法?

3 个答案:

答案 0 :(得分:21)

每个版本的Webpack都有一个内置版本的UglifyJS(0.4.6),它不支持ES6。此版本仅支持ES5语法。

有两种可能的解决方案:

  • 制作转发目标es5
  • 请勿使用uglifyjs-webpack-plugin的内置版本,并使用npm install -D uglifyjs-webpack-plugin安装the latest version。将其添加到配置中的plugins属性中:

    const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
    
    module.exports = {
      plugins: [
        new UglifyJSPlugin()
      ]
    }
    

答案 1 :(得分:0)

uglifyjs-webpack-plugin无法 Uglify 特定依赖

时出现此错误
  

那么,如何查找产生此类错误的库?

我正在使用react,所以我删除了我的应用程序中的所有表单并保留了一个表单并导入了所有依赖项,并且删除/添加这些依赖项逐个 并运行命令

webpack -p

SO 在我的情况下,browser-history创建了这样的错误。现在您可以通过一些复制示例向该库的作者报告此问题

working Package.json & .babelrc

答案 2 :(得分:0)

绝对是uglifyjs版本和您尝试编译的javascript目标的问题。这可能是两件事,你的webpack设置和你的babel设置导致了这个。

如果您使用的是webpack v3.5.5的最新版本,则会附带uglifyjs-webpack-plugin ^0.4.6,它不支持es6或更高版本的目标。

请参阅当前关于docs选项的Webpack UglifyjsWebpackPlugin,其中介绍了如何使用uglify-js-webpack-plugin v1.0.0-beta.2的最新测试版。但不清楚如何安装该版本。

与Webpack一起使用

yarn add uglifyjs-webpack-plugin@beta --dev

因为你没有提到你的Babel设置是什么。您可能想要或希望使用babel-preset-env作为预设。有option for uglifyjs

很高兴看到回购或要点。