0

私はこのような.jsを持っていて、それを圧縮しています:

'use strict';
!(function () {
  var object = typeof exports != 'undefined' ? exports : this;
}());

Google Closure コンパイラを使用すると、エラーは発生せず、「this」はウィンドウ オブジェクトを参照しています。しかし、( mangle true または false で) Uglify を使用すると、「this」で undefined が取得されます (したがって、オブジェクトは未定義であり、エラーが発生します)。誰も理由を知っていますか?

基本的に、これをウィンドウに変更するだけで機能しますが、私の懸念は、他のコード、ライブラリ、または将来醜いものになることです。

注: オプションで grunt-contrib-uglify プラグインを使用しています: mangle: true、preserverComments: false、sourceMap: true

4

1 に答える 1

4

これは予想される動作です:

'use strict';関数のコンテキストがでundefinedあり、グローバル オブジェクトではありません。

于 2015-03-20T22:06:41.247 に答える