問題タブ [uglifyjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2386 参照

javascript - UglifyJS+GruntJSを使用した条件付きコンパイル

作業中のJavaScriptプロジェクトにgrunt-bbbを使用しています。gruntによるUglifyJSのサポートを使用した条件付きコンパイルを使用したいのですが、機能させることができないようです。タスクを醜くするオプションを渡そうとしていdefinesますが、機能していないようです。

私のgrunt.jsファイルは次のようになります:

exceptオブジェクトにもプロパティを追加しようとしましたがmangle、それも機能していないようです(ファイルが壊れています...)UglifyJSは明らかに実行されていますが、オプションを取得していないようです。渡されました。私もコードを掘り下げましたconsole.log(grunt.config('uglify'));

これは私には正しいように見えます...

何かご意見は???

0 投票する
2 に答える
5173 参照

ruby-on-rails - Rails uglifier は関数名を醜く (マングル) する必要がありますか?

私の .js ファイルは圧縮され、変数はマングルされていますが、Heroku では関数名はマングルされていません (最新の Rails 3.2.8 および最新の uglify 1.3.0 gem を実行しています)。

https://github.com/lautis/uglifier#usageによると、「mangle」オプションのデフォルトは true です。以下は私の設定です。

production.rb から:

私も試してみました

しかし、顕著な違いはありません。

あるコメント投稿者が示唆したように、1 つの .js ファイルの内容を変更しようとしましたが、違いはありませんでした。

Heroku での圧縮済みプリコンパイル済み .js ファイルの出力の例:

変数名はマングルされているようですが、関数名はそうではありません。

関数名がマングルされない理由はありますか? または、Rails/js コード (つまり、javascript onclick イベント) から関数を呼び出すのが難しいため、これは望ましくない動作ですか。または、関数名がマングルされている場合、これらの onclick 呼び出しもマングルされた名前に変更されますか?

ありがとう :-)

0 投票する
1 に答える
193 参照

javascript - js の縮小化を妨げたり、javascript のコンパイル時にエラーの原因となる可能性のある謎のシンボル

最近、すばらしいUglifyJSで遊んでいるときに、ミニフィケーション エラーが発生する奇妙なシンボルに気付きました。選択またはコピーできず、特殊文字ではないため、奇妙に見えます。少なくとも私は知っています(LF、CR、タブまたはスペース)。

notepad ++では、次のようになります。

ここに画像の説明を入力

カーソルを 95 行目の先頭に置いてバックスペースを押すと、画像は次のようになります。 ここに画像の説明を入力

でも消せます。しかし、私は好奇心旺盛です。一方、正規表現を使用して削除したいので、これらが私のjsファイルを台無しにしないようにします。それで、これは何ですか、どうすればそれを見つけて正規表現などで削除できますか?

0 投票する
2 に答える
172 参照

javascript - UglifyJSを使用して未定義の識別子を確認するにはどうすればよいですか?

UglifyJSパーサーを使用して、定義が保証されていないときにコード内の識別子が使用されているかどうかを確認したいと思います。

例:

(スコープ内に存在する可能性があるため)必ずしもmyfunc未定義でmyvarはないことを認識していますが、いつ未定義になる可能性があるかを知りたいと思います。

echo "myfunc(myvar);" | uglifyjs幸いにも戻ってきmyfunc(myvar);て、未定義の変数をチェックするオプションが見つかりません。

JSLintを実行してassume browser, window, node.js, etc すべてオフにすると、これが私が求めている結果です。UglifyJSでも同様のことをしたいと思いますが、環境については何も想定していません(ウィンドウ、コンソール、アラートなどはありません)。

0 投票する
2 に答える
4104 参照

javascript - uglifyjs が特定の関数の名前を変更しないようにする

その中にコンストラクターを持つ関数があります。新しいオブジェクトを作成して返します。

その結果、uglify は Car の名前を何らかの文字に変更し、これが返されると、オブジェクト名が単なる文字のように見えます。たとえば、クロムでは、オブジェクトのタイプは「t」であると表示されます。

一部の関数の名前を保持するようにuglifyに指示する方法はありますか?

0 投票する
2 に答える
161 参照

javascript - Javascript 1.7、特に Firefox の拡張機能に適したコンパイラ/圧縮ライブラリはありますか?

  • Google Closure Compiler を調べたところ、これが見つかりまし。「const」、「let」、およびその他の Javascript 1.7 タグは好きではありません。
  • UgliifyJS も Javascript 1.7 をサポートしていないようです。
  • YUI Compressor は getter/setter のような ECMASCRIPT 機能を受け入れません

現在、Javascript 1.7 の機能をサポートするコンプレッサーはありますか? 私が必要とする唯一のことは、コメント/空白をクリアすることです(GCCのWHITESPACE_ONLY類似物)。

0 投票する
1 に答える
2611 参照

symfony - セグメンテーション違反がなければ、アセットでフィルターuglifyjsを使用できません

セグメンテーション違反uglifyjsを引き起こしているように見えるので、Symfony2コンテキストでasseticでフィルターを使用できないようです。

私の設定は次のようになります:

そして私の見解:

フィルタを無効にするとすぐにエラーが発生しなくなります。ノードの新規インストールがあり、uglify-js@1.3.3 node_modules/uglify-js

0 投票する
4 に答える
1178 参照

javascript - この JavaScript が機能する理由

私は UglifyJS からのいくつかの出力を見ていましたが、次のようなコードに出くわしました:

そのコードを実行した後a1b文字列Hello, World!です。

一見、戻り値のない関数の結果が返されているように見えますが、その後にカンマと文字列リテラルが続くため、そうbなるように見えます。undefined

なぜこれが機能するのですか?
そして、なぜ UglifyJS は無名関数を実行しHello, World!てから次のステートメントとして返さないのでしょうか?

0 投票する
1 に答える
882 参照

.net - Node JS と MS Build - これは可能ですか?

私は JavaScript 圧縮用の MS Build タスクを作成しており、圧縮プロバイダーとして Ugliify を使用できることを望んでいました。

Ugliify は JavaScript で書かれているので、明らかに .NET ポートが必要でした。幸いなことに、少なくとも 2 つのオプションが考えられます。Uglify CSUglify.NETです。残念ながら、どちらも昨年に一度もコミットされていないため、Uglify の新しいバージョン 2 をサポートしていないと思います :)

これを念頭に置いて、.NET ビルド タスクから元のコードをどうにかして評価する方法があるのではないかと考えていました。もっと一般的に言えば、.NET から Node.JS を呼び出す方法はありますか?

タスクから Node.JS サービスを呼び出すことは想像できますが、これはやり過ぎのようです。

0 投票する
3 に答える
218 参照

javascript - コンマ演算子を使用した複数の関数定義の連鎖

Uglify-js のソースコードを見ていると、面白いことに気が付きました。bin/uglifyjs( ref )では、いくつかの関数が次のように定義されています。

Uglify-js が専門家によって書かれ、JQuery のような多くの製品で使用されていることを考えると、コードが次のように書かれていない理由がわかりません。

これにより、これらが 2 つのローカル変数であることがより明確になります。またはこれはどうですか:

これにより、マザー関数のスコープ全体でdefsymand関数を使用できるようになります。defval

なぜ彼らは最初の構文を選ぶのでしょうか? なぜ他の構文ではないのですか?