問題タブ [grunt-contrib-uglify]
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 - grunt uglify でライブラリを安全に minfy するにはどうすればよいですか? (もしあれば)
grunt (および bower) を使い始めて、自分用にデフォルトのビルド プロセスを設定するときに、uglify を使用したスクリプトの縮小について少し迷っていることに気付きました。
私は過去に常にスクリプトの縮小版を使用してきましたが、今は a) すべてをパッケージで管理し、b) ビルド プロセスを作成しようとしています。私のプロジェクトと連結してから、自分自身を縮小します。
これまでのところエラーは発生していないようですが、何かが欠けているのではないかと心配しています。
jquery / backbone / underscores などのライブラリをデフォルト設定で uglify を介してスラムするのは標準的な方法ですか? または、これらのライブラリのマングリングをオフにする必要がありますか?
いくつかのチュートリアルと grunt uglify プラグインの readme を読みましたが、まだ不明です。
grunt を使用して、これらのような縮小ライブラリをどのように処理していますか? (もしあれば)
現在、私のuglifyタスクは次のようになっています:
ライブラリを libs.min.js というファイルに順番に連結し、plugins フォルダー内のすべてを plugins.min.js というファイルに連結してから、uglify に渡します。
javascript - Grunt:タスク「デフォルト」が見つかりません
いくつかの単純な Grunt タスクをセットアップしようとしていますが、それらを実行すると、ターミナルに「警告: タスク "デフォルト" が見つかりません。
構文エラーが原因である可能性を減らすために、gruntfile を 1 つのタスクに単純化しましたが、それでも同じ警告が表示されます...
gruntfile.js
};
パッケージ.json
与えられた警告
どうもありがとう!
javascript - uglify - ファイルからソースファイルパスを読み取りますか?
Grunt で uglify を使用して、JavaScript ファイルを縮小および連結しています。これらのjsファイルのファイルパスを「loadlist」というファイルに保存しました。「loadlist」をuglifyに渡して、それらを読み取って処理できるようにする方法があるかどうか疑問に思っていました。
注 1 : 上記は単なる例です。実際のロードリストは実際にはかなり大きい
ありがとうございました
javascript - grunt task "uglify" が JavaScript コードを変更したため、ソース コードが機能しなくなりました
面倒なタスク「uglify」によってコードが変更されたため、動作しなくなりました。私は CoffeeScript、AngularJS、grunt などの初心者です。これを修正するには、CoffeeScript コードで何を変更する必要がありますか?
「醜い」が私のコードをそのように変更した理由はわかりません。JavaScript コードは私には良さそうです。
CoffeeScript コード:
コンパイルされた JS コード
「uglify」タスク後の JS コード
gruntjs - Grunt Ugliify ループ
私はまだGruntに慣れていないので、経験豊富な人がこれを手伝ってくれるかもしれません. 何らかの理由でgrunt watch
、uglify タスクを実行するたびに複数回実行されるため、scripts.min.js ファイルが複数回コンパイルされます。
これは私の Gruntfile.js が現在どのように見えるかです:
uglify タスクが複数回実行されている理由を知っている人はいますか?
gruntjs - Grunt uglify が端末に出力ファイル レポートを表示しない
実行するgrunt
と、端末にこの出力が表示されます。
uglify と autoprefixer は出力を表示しません
しかし、私が実行するとgrunt -v
:
uglify は動作し、ファイル出力を書き込み、ファイル レポートを表示します。
-v がないと機能しないのはなぜですか? 以前はターミナルに表示されていたのを覚えています。
ここに私のGruntfile.jsがあります
angularjs - CSS uglify — 単調なタスク
CSSを醜くするGruntタスクがあるのだろうか?GMail コードと同様に、すべてのクラス名はランダムな 2 ~ 3 文字です。
AngularJS と grunt-angular-templates Grunt タスクを使用して、views/ フォルダー内のすべてのテンプレートを単一のtemplates.js $templateCache ファイルに連結しています。このファイルをできるだけ小さくしたいと考えています。
index.html、main.css、およびviews/フォルダーに多数の HTML ファイルが含まれています。これらすべてのファイルのすべての CSS クラス名を醜くしたいのですが、「BEM クラス名表記法を使用しているため、CSS クラス名はむしろ長いです。
requirejs - メインファイルもconfig()もなしでrequirejsを使用する
次のセットアップを使用して、多くの js (jquery) モジュール (ファイル) を含むアプリを構築しています。
- ビルドはGruntタスク ランナーを使用して実行されます。
- ハンドルバーテンプレートを使用して、 *.hbsファイルから html を生成します。
- ビルド中に、すべての js ファイルを 1 つの縮小ファイルに醜くします。
- アプリケーションで縮小されたファイルを呼び出します
<script src="assets/js/app.min.js"></script>
今、requirejsを使用してコードを整理し、AMD 仕様に準拠したいと考えています。
しかし、このアプローチには 3 つの問題があります。
- すべての js に対して 1 つの縮小ファイルが必要です。これにより、コードを「デコード」してコピーするのが難しくなり(jquery、モダナイザーなどの他の依存関係と混合されているため)、スクリプトが個別に呼び出された場合に余分な http リクエストを回避するのにも役立ちます。アプリとそのメインファイル内で、他の必要なファイルを呼び出します..私はそのような構成を持っていません。
- 私が使用している依存関係の多くは、bower パッケージ (ディストリビューションには含まれていません) にあります。これにより、提案されたrequirejs メソッドを使用してこれらのファイルを呼び出すことができなくなります。
- define(); を呼び出さないサードパーティのプラグインでこれに jquery を使用しています。それらを機能させるには、シム構成を使用する必要があり、これが再び問題#2を引き起こします!
では、コードをモジュール内に保持し、適切に整理しながら、requirejs を利用するにはどうすればよいでしょうか?
長い質問で申し訳ありません。読んでくれてありがとう:)
ps: 質問のタイトルを自由に変更してください。より良いタイトルが見つかりませんでした。