web-dev-qa-db-ja.com

UglifyJsからのbundle.jsのエラー名が必要です

_bundle.js_ファイルを最小化/圧縮するためにUglifyJSを使用しようとしています。 _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を使用しています。何が間違っているのでしょうか?

18
Colby Cox

Webpackのすべてのバージョンには、ES6をサポートしないUglifyJS(0.4.6)の組み込みバージョンがあります。このバージョンはES5構文のみをサポートします。

2つの解決策があります。

  • トランスパイラーをターゲットにするes5
  • ビルトインバージョンのuglifyjs-webpack-pluginを使用せずに、 最新バージョン を使用してnpm install -D uglifyjs-webpack-pluginをインストールしないでください。設定のpluginsプロパティに追加します:

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

このエラーは、 glifyjs-webpack-plugin が特定の依存関係をUglifyできない場合に発生します

だから、そのようなエラーを作成するライブラリを見つける方法は?

私はreactを使用していたので、アプリ内のすべてのフォームを削除し、1つのフォームのみを保持し、その中のすべての依存関係をインポートし、remove/addそれらの依存関係を1つずつ実行してコマンドを実行します

webpack -p

[〜#〜] so [〜#〜]私の場合は browser-history そのようなエラーを作成しました。今、この問題を報告できますいくつかの複製例を含むライブラリの作成者

作業Package.json&.babelrc

0
vijay

間違いなく、uglifyjsのバージョンとコンパイルしようとしているjavascriptターゲットの問題です。これは、ウェブパックのセットアップとこれを引き起こすバベルのセットアップの2つである可能性があります。

webpack v3.5.5 の最新バージョンを使用している場合は、es6以上のターゲットをサポートしない glifyjs-webpack-plugin ^ 0.4.6 が付属しています。

現在のWebpack docs about glifyjsWebpackPlugin optionsを参照すると、 glify-js-webpack-plugin v1.0.0-beta。 2 。しかし、そのバージョンをインストールする方法については明確ではありません。

Webpackで使用するには

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

Babelのセットアップについては言及していません。 babel-preset-env プリセットとして。 glifyjsのオプション があります。

レポや要点を見るのは素晴らしいことです。

0
andykenward