web-dev-qa-db-ja.com

uglify-jsが「警告:出力が32000文字を超えています」と報告するのはなぜですか?

  • ビルドパイプラインは、TypeScript、browserify、browserify-css、uglifyです。
  • ランタイムライブラリ:react、bootstrap。

これまでのところ、私のアプリケーションにはほとんど機能がありません(そのため、今のところは機能しているように見えますが、これが後で私を噛むかどうかを尋ねています)。後でそれは大きくなります(react-router、redux、Auth0のような他のjsライブラリ、おそらくいくつかの実際の機能)。

次のものを含むapp.cssがあります。

@import url("node_modules/bootstrap/dist/css/bootstrap.css");

次に、それをindex.tsxに次のようにインポートします。

import './app.css';

これはすべて、私のhelloworld反応コンポーネントが「helloworld」を表示するという点で機能しているように見えます。

しかし、ビルド中に、uglifyレポート:

WARN: Output exceeds 32000 characters

私はそれを無視すべきですか?もしそうなら、それを抑制する方法はありますか?

Uglifyによって生成されたファイルを見ると、32000文字を超える行がないことを確認しているようです。ほとんどの行は32000の少し手前で切り捨てられます(31999に1つ)。

しかし、120K文字の長さの1行var css='/*!\n * Bootstrap v3.3.7 ...'があります。これがUglifyが私に伝えようとしていることだと思いますが、大したことは何ですか?

12
Shorn

DavidGのコメントによると、max-line-lenオプションを使用すると、これについて文句を言わないようにUglifyに指示できます。

ただし、コードを「美化」している場合にのみ機能するため、このオプションを追加することはできません。次に、あなたがしたくないかもしれない他のことをします。

これに対する解決策は、-bオプションを使用して美化を有効にすることですが、実際には美化しないようにUglifyに指示します。 o_O

"scripts": {
  "uglifyjs":"uglifyjs -b beautify=false,max-line-len=120000"
}

上記は行の長さを120Kに設定します-これにより警告は消えました。

ただし、これは回答というよりは回避策です。質問の「どうすれば抑制できますか」という部分に回答します。私はまだ知りませんなぜそれは私にそれについて警告しています-古いブラウザか何かの問題、私は知りません。

9
Shorn