問題タブ [grunt-contrib-concat]
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.
json - grunt concat で使用する動的配列を作成する
package.json を定義した変数に基づいてセット ファイルを連結する必要があります。
grunt では、これらを JSON 配列に構築し、それをsrc
grunt-concat-contrib タスクのパラメーターに送り込みます。
私の問題は、変数がに割り当てられているときにpaths
変数が内部で機能しないことです。initConfig
JSON.stringify(paths)
パス変数をコンソールに記録した場所からコピーした次のような配列を手動で入力すると、機能します!
var paths = ["layouts/home/a/*.php","layouts/about/a/*.php","layouts/contact/b/*.php"];
私は何が欠けていますか?
gruntjs - 複数の grunt concat 操作に src/dest の場所を再利用する
現在、 grunt-contrib-concatを使用してこのセットアップを行っています:
このコードは機能しますが、これらの文字列には明らかに非 DRY コードが多数含まれています。
私は次の事実を表現することで、これを片付けたいと思っています:
- 常に「dest」を「dist/js/inject/」にしたい
- 常に「src」を「src/js/」で開始したい
したがって、私の考えでは、この疑似コードに似たことが言えます。
その時点で私の考えは不足しています。これは Grunt で達成できますか、それともかなりの繰り返しが必要ですか?
node.js - ブラウザーキャッシュ内のバージョンを使用して縮小された JS および CSS ファイルをうなり声を上げる
私たちはプロジェクトで初めてうなり声を使用しています.Googleとstackoverflowにかなりの時間を費やしましたが、解決策を見つけることができませんでした.現在、JSとCSSファイルを縮小していますが、ブラウザでバージョンを縮小したJSに追加したいアセット(jsおよびcss)ファイルが変更されるたびに、ブラウザキャッシュ内のファイルにバージョンを追加するためにgruntまたはノードを使用する方法がありますproduction.js
。production.css
Concat.js
Index.ejs
編集
filerevを使用して実装していますが、バージョンは作成されていません
grunt.config.set('filerev', {
});
};
default.js
javascript - ブロック内のパスを置き換えない
ここで説明されている usemin(Prepare) を理解するのに問題があります: usemin
私が理解しているのは、usemin を使用すると、多くのファイルを 1 つのファイルとして結合できるということです。これは、JS アプリケーションを構築するときに良い考えです。また、使用方法の流れも理解しています。たとえば、次のようになります。
次に、このコードがある場合:
concat タスクは、これらすべてのファイルを app.js と呼ばれる 1 つのファイルに結合し、.tmp フォルダーに配置します。次に、uglify タスクはファイル app.js を .tmp フォルダーから取得し、その中のすべての js を uglify して、dist-folder に配置します。
useminPrepare の前に、元の html (index.html) も dist フォルダーに変換する別のタスクがあったとします。usemin タスクが開始されると、dist フォルダーを使用するように設定されており、生成された app.js への参照で古いブロックを置き換える必要があります。したがって、dist フォルダー内の html では、同じ部分が次のようになります。
これは正しいです?では、コメント タグは残っていないはずですか? 現在、useminに関連する問題があります。状況は次のとおりです。最初の html には、次のような usemin タグ内に bower_components ( bower -install ) のコメント タグがあります。
この設定では、最終的に usemin タスクまですべてがうまく機能しているように見えます。usemin タスクは、コード ブロックを置き換えることができなくなりました。できない理由がわかりました。そこにバワーコメントブロックがあるからです。したがって、最初のタスクを個別に作成し、コードを dist に転送し、それらの bower コメント タグを削除して、残りのタグをビルドに作成すると、すべて正常に動作します。これを解決して、すべてのタスクをまっすぐに実行できるようにしたいと考えています。どうすればこれを解決できますか?コメント ブロックがあると usemin が失敗するのはなぜですか? コメント ブロックを無視するように usemin オプションを変更できますか? または、bower コンポーネントが注入され、html が dist に転送された後に、これらの特定のコメント ブロックを削除する、面倒なタスクを作成する必要がありますか? 私が持っているバージョンは次のとおりです。
javascript - 開発および本番モードで grunt タスクを実行しようとしても、デフォルト タスクが実行されない
私は 2 つのモードを持っています。つまり、js のプロダクション モードと開発モード、およびプロダクション モードでの css 縮小と、開発モードでの連結のみです。
これには複数のタスクがあり、何らかの理由でデフォルトモードを開発に設定しました。タスク「開発」が見つからないと言ってうなり声が失敗します。デフォルトタスクで開発を明示的に定義した場合。
ここに私のgruntfile.jsがあります
};
javascript - ビルド中にいくつかのファイルを連結する Grunt 除外
私は Yeoman generator-angular を使用しており、この grunt ファイルが得られます (いくつかのタスクを追加しましたが、指定されたものは変更しませんでした): 'use strict';
私のファイル構造は次のようなものです:
ビルド タスク中に、フォルダーに生成された scripts.js ファイルに main.js ファイルを追加したくありませんdist/scripts
。
concat タスクによって行われていると思いますが、どのタスクがそれを実行し、その構成がどこにあるのかわかりません。
javascript - フォルダー内のすべての JS ファイルを連結するにはどうすればよいですか?
多くのサブフォルダーを含むメインのアプリフォルダーがあり、それぞれに独自のサブフォルダーがあり、途中で.js
ファイルが含まれています。
.js
という名前のこのメイン最上位フォルダーの下にあるすべてのファイルを連結する単調なタスクを作成したいと考えていますsrc
。
とにかくそれを行うことはありますか?
今、私は持っています
.js
ただし、これは考えられるすべてのファイルの場所を考慮しているわけではありません。また、あるフォルダーに新しいものを追加した場合.js
、面倒なタスクを手動で更新する必要はありません。