8

私はUglifyJS 2を使用して、多数の JavaScript ファイルを連結および縮小しています (5 から 10 ほどではありません)。このプロセスは、UglifyJS 2 のデフォルト設定を使用して Node.js 内から実行されます。

ファイルは基本的に、Require.js、jQuery、Backbone.js、Backbone.js Marionette、Moment.js、およびいくつかの追加の (小さい) ヘルパー ファイルであり、すべて非圧縮 (つまり開発) バージョンです。

問題は、このプロセスに 10 秒近くかかることです。

引き継ぎで縮小化を完全に無効にすると

{ compress: false }

オプションとして、はるかに高速ですが、それでも約 2 秒かかります。

質問 #1: UglifyJS 2 では、少数のファイルでもそれほど時間がかかるのは普通ですか? それとも、私はおそらく何か間違ったことをしていますか?

質問 #2: UglifyJS 2 の便利なオプションをすべて無効にすることなく、このプロセスを高速化するにはどうすればよいですか?

4

2 に答える 2

18

未使用圧縮オプションを false に設定すると、少し高速化されるはずです。それだけで11秒から5.5秒になりました。

   { 
       compress: {
           unused: false
       }
   }

それをオフにして2k未満の差。

于 2015-11-20T21:16:10.177 に答える
8

ミニファイヤが複数の大きなファイルを圧縮するのに数秒かかることは珍しくありません。あなたの場合(複数の大きなライブラリ)では8〜12秒で問題ありません。

ただし、これらのライブラリを自分で圧縮しないことをお勧めします。それらのほとんどは、彼らが何をしているかを本当に知っている開発者のチームを背後に持っています。ソースから縮小版をダウンロードして、次のように簡単にすることをお勧めします。

copy *.min.js allLibraries.js

また

cp *.min.js allLibraries.js

注:正しい順序で連結していることを確認してください。これは通常、The main libraries -> The plugins -> Your code.

高速化に関しては、強力な圧縮などのクールな機能を無効にする以外に、できることはあまりありません。

于 2013-03-16T09:59:10.527 に答える