問題タブ [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.
javascript - UglifyJS+GruntJSを使用した条件付きコンパイル
作業中のJavaScriptプロジェクトにgrunt-bbbを使用しています。gruntによるUglifyJSのサポートを使用した条件付きコンパイルを使用したいのですが、機能させることができないようです。タスクを醜くするオプションを渡そうとしていdefines
ますが、機能していないようです。
私のgrunt.jsファイルは次のようになります:
except
オブジェクトにもプロパティを追加しようとしましたがmangle
、それも機能していないようです(ファイルが壊れています...)UglifyJSは明らかに実行されていますが、オプションを取得していないようです。渡されました。私もコードを掘り下げましたconsole.log(grunt.config('uglify'));
。
これは私には正しいように見えます...
何かご意見は???
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 呼び出しもマングルされた名前に変更されますか?
ありがとう :-)
javascript - js の縮小化を妨げたり、javascript のコンパイル時にエラーの原因となる可能性のある謎のシンボル
最近、すばらしいUglifyJSで遊んでいるときに、ミニフィケーション エラーが発生する奇妙なシンボルに気付きました。選択またはコピーできず、特殊文字ではないため、奇妙に見えます。少なくとも私は知っています(LF、CR、タブまたはスペース)。
notepad ++では、次のようになります。
カーソルを 95 行目の先頭に置いてバックスペースを押すと、画像は次のようになります。
でも消せます。しかし、私は好奇心旺盛です。一方、正規表現を使用して削除したいので、これらが私のjsファイルを台無しにしないようにします。それで、これは何ですか、どうすればそれを見つけて正規表現などで削除できますか?
javascript - UglifyJSを使用して未定義の識別子を確認するにはどうすればよいですか?
UglifyJSパーサーを使用して、定義が保証されていないときにコード内の識別子が使用されているかどうかを確認したいと思います。
例:
(スコープ内に存在する可能性があるため)必ずしもmyfunc
未定義でmyvar
はないことを認識していますが、いつ未定義になる可能性があるかを知りたいと思います。
echo "myfunc(myvar);" | uglifyjs
幸いにも戻ってきmyfunc(myvar);
て、未定義の変数をチェックするオプションが見つかりません。
JSLintを実行してassume browser, window, node.js, etc
すべてオフにすると、これが私が求めている結果です。UglifyJSでも同様のことをしたいと思いますが、環境については何も想定していません(ウィンドウ、コンソール、アラートなどはありません)。
javascript - uglifyjs が特定の関数の名前を変更しないようにする
その中にコンストラクターを持つ関数があります。新しいオブジェクトを作成して返します。
その結果、uglify は Car の名前を何らかの文字に変更し、これが返されると、オブジェクト名が単なる文字のように見えます。たとえば、クロムでは、オブジェクトのタイプは「t」であると表示されます。
一部の関数の名前を保持するようにuglifyに指示する方法はありますか?
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類似物)。
symfony - セグメンテーション違反がなければ、アセットでフィルターuglifyjsを使用できません
セグメンテーション違反uglifyjs
を引き起こしているように見えるので、Symfony2コンテキストでasseticでフィルターを使用できないようです。
私の設定は次のようになります:
そして私の見解:
フィルタを無効にするとすぐにエラーが発生しなくなります。ノードの新規インストールがあり、uglify-js@1.3.3 node_modules/uglify-js
javascript - この JavaScript が機能する理由
私は UglifyJS からのいくつかの出力を見ていましたが、次のようなコードに出くわしました:
そのコードを実行した後a
は1
、b
文字列Hello, World!
です。
一見、戻り値のない関数の結果が返されているように見えますが、その後にカンマと文字列リテラルが続くため、そうb
なるように見えます。undefined
なぜこれが機能するのですか?
そして、なぜ UglifyJS は無名関数を実行しHello, World!
てから次のステートメントとして返さないのでしょうか?
.net - Node JS と MS Build - これは可能ですか?
私は JavaScript 圧縮用の MS Build タスクを作成しており、圧縮プロバイダーとして Ugliify を使用できることを望んでいました。
Ugliify は JavaScript で書かれているので、明らかに .NET ポートが必要でした。幸いなことに、少なくとも 2 つのオプションが考えられます。Uglify CSとUglify.NETです。残念ながら、どちらも昨年に一度もコミットされていないため、Uglify の新しいバージョン 2 をサポートしていないと思います :)
これを念頭に置いて、.NET ビルド タスクから元のコードをどうにかして評価する方法があるのではないかと考えていました。もっと一般的に言えば、.NET から Node.JS を呼び出す方法はありますか?
タスクから Node.JS サービスを呼び出すことは想像できますが、これはやり過ぎのようです。
javascript - コンマ演算子を使用した複数の関数定義の連鎖
Uglify-js のソースコードを見ていると、面白いことに気が付きました。bin/uglifyjs
( ref )では、いくつかの関数が次のように定義されています。
Uglify-js が専門家によって書かれ、JQuery のような多くの製品で使用されていることを考えると、コードが次のように書かれていない理由がわかりません。
これにより、これらが 2 つのローカル変数であることがより明確になります。またはこれはどうですか:
これにより、マザー関数のスコープ全体でdefsym
and関数を使用できるようになります。defval
なぜ彼らは最初の構文を選ぶのでしょうか? なぜ他の構文ではないのですか?