問題タブ [gulp-rev]
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 - 前のタスクの完了を待っていない Gulp タスク
ストリームを使用して ( gulp-revを使用して)改訂されたファイルを書き込む gulp タスクと、以前に作成されたマニフェスト ファイルを使用して html ファイル内の変数を置き換える別のタスクがあります。
私の最初のタスク:
前のタスクでは、「app-34f01b9d.js」などの名前のファイルと、次を含むマニフェスト ファイル「appjs-manifest.json」が書き込まれます。
私の 2 番目のタスクは、理論的には、開始する前に最初のタスクの完了を待つ必要があります。
タスクはマニフェスト ファイルを読み取り、"app-34f01b9d.js" を、ファイル "index.html" を生成するハンドルバー テンプレートの変数 {appjs}} に置き換える必要があります。
javascript ファイルとマニフェスト ファイルは正しく書き込まれますが、マニフェスト ファイルが書き込まれるのを待たずに 2 番目のタスクが実行され、間違ったマニフェスト ファイルの内容(前の実行の内容) が取得されます。
gulp - gulp-rev で gulp-newer を動作させる方法は?
セットアップは次のように簡単です。
宛先ファイルが別の名前になるため、gulp-newer は明らかにここでは機能しません。この場合、gulp-newer (または gulp-changed) を機能させるための回避策はありますか?
javascript - gulp-rev を使用した後に改訂されたファイルを .html に含める方法は?
だから私はこのタスクをgulpで作成しました:
そして、たとえば次のような名前の追加ファイルを作成します。
script-7c58e79612.js
しかし、どうすればそれをhtmlファイルに含めることができますscript.js
か? たとえば、 my の次の行の代わりにfile.html
:
私はこれを持つことができます:
gulp - gulp-rev-replace の使用に関するヘルプが必要
index.html の 2 つのスクリプト ファイル名とスタイル ファイル名の名前を置き換えようとしており、gulp-rev を使用して更新されたファイルの名前をハッシュに変更し、gulp-rev-replace を使用して実際の置換を行います。でも壁にぶち当たります。Gulp-rev はうまく機能し、一意のハッシュを持つ改訂されたファイル名を生成し、rev-manifest.json ファイルも表示されます。起こっていないのは、ビルド時の index.html ファイルの置換です。私が実行している gulp タスクの 1 つの例を含めました。revReplace 呼び出しのどこが間違っているのかわかりません。どんな助けでも大歓迎です。
javascript - gulp-userref で動作する gulp-rev-replace を取得できません
前の質問の続きですが、今回は次のステップです: ファイルのリビジョンを機能させることです。
私は Gulp を使用した自動化に関する johnpapa のコースに取り組んでおり、別の壁にぶつかっているようです (これは、簡潔なコースを別のファイル構造に適応させようとしたときに得られるものです:P )。
基本的に、問題はリビジョンで名前が付けられたファイルを取得することですが、それらの名前は end-resulttest.jsp
に含まれず、理由がわかりません...
これがタスクです(簡潔にするために縮小は省略されていますが、ファイルのリビジョンでは問題なく機能します):
inject
は、css および js 参照をインデックス ファイルに挿入するタスクです (正常に動作します)、$
isrequire('gulp-load-plugins')({lazy: true})
およびconfig.indexFile
isindex.jsp
です。
関数は次のreplaceDirectory
とおりです ( rev-manifest がフルパス名を生成するために使用されます):
私のファイル構造(コースのものとは異なります)は次のとおりです。
基本的に、index.jsp は CSS および JS ライブラリおよびアプリケーション アセット用に処理され、これらは縮小され、lib.css、lib.js、app.css、および app.js に連結されます。後で、これらはすべて、test.jsp と呼ばれる index.jsp のコピーに挿入されます。
アセットの収集、連結、挿入、およびディスク上のファイル リビジョンは、見事に機能します。ファイル名の更新test.jsp
- それほどでもない...
アイデアや指針をいただければ幸いです。
javascript - サブフォルダー内の HTML ファイルに対する gulp-rev-replace
gulp-rev-replace を取得して、サブフォルダー内の HTML ファイル間でファイル参照を同じハッシュに置き換える方法を知りたいです。次のファイル構造を考慮する
- index.html
- サブフォルダー
- index.html
- スクリプト
- main.js
- スタイル
- main.scss
そして、次の html ステートメント:
index.html:
サブフォルダー/index.html:
そして私のGulpfileの以下
のスタイル リンク ブロックはindex.html
、縮小およびハッシュ化された正しいスタイルシート参照に置き換えられます。の同じブロックはsubfolder/index.html
、まったく異なるハッシュ化されたスタイルシート参照を代わりに取得します。ただし、スタイルシートのパスは正しく取得されます。
Gulpfile の設定が間違っていますか?
gulp - Gulp タスクが連続して機能しない
ビルド、ビルド スタイル、JavaScript をクリーンアップし、アセット マニフェストを作成する 4 つのタスクがあります。私のデフォルトのタスクは次のようになります。
したがって、これは完全に機能しますが、「バージョン」タスクです。何も作成せず、効果もありません。
バージョン タスクを実行gulp clean; gulp styles; gulp scripts; gulp version;
すると、目的のアセット マニフェストが作成されます。
これは、デフォルト タスクを実行した場合の出力です。
誰かが私がしている間違いを見ますか? バージョン タスクを実行すると、ビルド アセットがまだ存在しない可能性がありますが、それがタスクを順次実行するようにした理由です。
問題を解決する方法について何か提案はありますか?
gulp - Gulp-rev-all は古いリビジョン ファイルを残します
タスクに問題がありgulp-rev-all
ます。コードを変更するたびに、新しいリビジョン ファイルが生成されますが、古いリビジョン ファイルはそこに残されます。
これが私の一気飲みの仕事です:
したがって、これは魅力のように機能します。rev(のような:)とファイルを含むファイルがscripts.0ad8ecf1.js
表示されmanifest.json
ます。問題は、コードを変更するたびにscripts.js
、別のハッシュを持つ新しいファイルが生成され、古いファイルが上書きまたは削除されないことです。したがって、私のフォルダーは次のようになります。
古いファイルを新しいファイルに置き換えることができないようです。これを達成するために誰かが私を助けたり、正しい方向に向けたりできますか?