1. ホーム
  2. webpack

Unexpected token punc ":", expected punc "," のようなUglifyJsエラーの解決法

2022-02-20 13:07:52

   原因はvueのプロジェクトをパッケージングしていたこと。すると、このようなエラーが報告されました。キーには、エラーが報告された場所が明示されていません。Unexpected token punc ":", expected punc "," [static/js/app.28653113.js:4107,15] とだけヒントが書いてありました。 しかし、パッケージが通らなかったのです。このファイルは全くありません。Unexpected token punc ":", expected punc "," [. /src/utils/request.js:8,11][static/js/app.28653113.js:4107,15] とエラーが報告されることがあり、このように明確にファイルが並んでいいというヒントがあります。上記の報告されたエラーに遭遇した場合。入手方法です。一晩の努力の末に ようやくこの種の問題を解決する汎用的な方法を発見しました。

   まず、webpackのドキュメントを見ます。その結果、uglifyjs-webpack-pluginプラグインにexcludeという設定があることがわかりました。つまり、設定されたファイルは圧縮プラグインによって除外されるので、この生成されたjsファイルを除外します。パッケージ化されたプロジェクトを取得し、トラブルシューティングを行うことができるようになります。

vue-cliの下位バージョンの場合、この時点でも設定を確認することができます。ビルドディレクトリにある webpack.prod.conf.js ファイルを探し、その中にある

minimizer: [
      new UglifyJsPlugin({
        sourceMap: true,
        uglifyOptions: {
          ecma: 8,
          compress: {
            warnings: false
          }
        }
      }),
      // Compress extracted CSS. We are using this plugin so that possible
      // duplicated CSS from different components can be deduped.
      new OptimizeCSSAssetsPlugin()
    }

このコードは上記の通りです。余談ですが、webpack4にはminimizerの設定しかありません。それ以下のバージョンにはないはずです。そして、excludeオプションを追加して、エラーを報告するファイルをインクルードします。

minimizer: [
      new UglifyJsPlugin({
       
        sourceMap: true,
        uglifyOptions: {
          ecma: 8,
          compress: {
            warnings: false
          }
        }
      }),
      // Compress extracted CSS. We are using this plugin so that possible
      // duplicated CSS from different components can be deduped.
      new OptimizeCSSAssetsPlugin()
    }

上記のエラーを報告し続けるこのファイルを除外することで、他のパラメータは無視することができます。主なものは除外で、パッケージは見事にパスし、以下のような結果になります。


Then we can go to the file that has been reporting errors to find out why it's reporting errors. The error I'm reporting here is in line 4107, column 15 of app.28653113.js, which is the two numbers after the semicolon on the error prompt [static/js/app.28653113.js:4107,15], and find line 4107, the result is as follows
Because of security issues. I changed the url to xxxx, but the error is obvious. The value of the object is supposed to be a string. That's why it keeps reporting this error. And the setting is easy to find. It's in the config. Of course, other people's errors and my error should not be the same. But to locate the problem, it is easy to solve. This problem really screwed me up all night
It's so bad.

取得元:https://www.cnblogs.com/yuweia/p/10521102.html