問題タブ [gulp-changed]
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 - 変更された TypeScript ファイルのみを効率的にコンパイルする Gulpfile
gulp をコンパイルして TypeScript ファイルを監視しようとしています。これは私がこれまでに得たものです
私はgulp-typescriptを使用しています。
ただし、何百もの TypeScript ファイルがあるため、ファイルの 1 つが変更されるたびにすべてのファイルを再コンパイルする必要はありません。上記のコードはそれを行います(watch-typescript
少なくとも と同じくらい時間がかかるのでわかりますcompile-typescript
)
このようにgulp-changedを使ってみました
それは確かに変更されていないファイルを除外します。しかし、typescript コンパイラは、通常は他のファイルから取得する型宣言がない単一のファイルしか取得しないため、エラーを報告します。
フラグを trueに設定したくありませんnoExternalResolve
。なぜなら、多くの型チェックが行われず、そもそも TypeScript を使用する多くの理由が台無しになるからです。
この gulpfile をより適切に記述するにはどうすればよいですか?
gulp - gulp-changed は内容が異なるファイルを上書きしません
コンテンツが異なる 2 つの兄弟ディレクトリに 2 つのファイルを作成すると、次のようになります。
Sha1Digest
次に、gulp を使用して最初のものを宛先フォルダーに出力し、コンパレーターを使用して gulp-changed でフィルタリングして、2 番目のもので上書きしようとします。
test2
ソース ファイルの内容がフォルダー内の既存のファイルと異なるため、ファイルが上書きされることを期待しますがdst
、そうではありません。
誰かが私の誤解を解いてくれませんか?
gulp - gulp-rev で gulp-newer を動作させる方法は?
セットアップは次のように簡単です。
宛先ファイルが別の名前になるため、gulp-newer は明らかにここでは機能しません。この場合、gulp-newer (または gulp-changed) を機能させるための回避策はありますか?
typescript - gulp-typescript で gulp-changed を使用する方法
変更時にすべてのファイルがコンソールに記録されないように、gulp-changed を統合しています。これは私の HTML ファイルでは機能しますが、gulp-typescript を使用して TypeScript ファイルを JavaScript にトランスパイルしています。
ここでは、Dan Wahlin が提案した TypeScript ワークフローを使用します。
だから私は次のように gulp-typescript に gulp-changed を実装しました:
私のconfig
オブジェクトは次のようになります。
それでも、1 つのファイルを変更すると、すべてのファイルがログに記録されます。上記.pipe($.changed(config.dest))
の行を行の直前に移動しようとさえしました.pipe($.sourcemaps.write('.'))
。
繰り返しますが、運が悪いです。
誰でもこれを修正する方法を知っていますか?
gulp - gulp-changed および/または gulp-newer およびアップロード タスクを使用した時折の Gulpfile フリークアウト
私はいくつかの非常に標準的なタスクを実行する素敵な小さなビルド スクリプトを作成しました...
deploy/
最初の前にディレクトリをクリーンアップするdev/
ディレクトリから関連deploy/
ディレクトリへのファイルの構築、連結、醜化、およびコピー- 変化の監視
- 等
しかし、より良い文脈のために、以下にそれを含めました:
私が直面している問題は、upload
タスクとcopy
タスクに直接関係しています。
実行中gulp --env [environment-name]
(例: gulp --env staging
) または だけgulp --env
で、 のサブディレクトリの 1 つにあるファイルを保存すると dev/liquid/
、copy
タスクが期待どおりに実行され、保存およびコピーされた単数形のファイルが 経由でアップロードされます。upload
タスク。ただし、ときどきファイルを保存すると、copy
タスクは通常どおり実行されますが、時計が異常になり、upload
内部のすべてのファイルをアップロードしようとしますdeploy/
(これにより、API 呼び出し制限エラーが発生し、当然問題が発生します)。
私はもともとgulp-changed
自分のタスク内で使用していましcopy
たが、ディレクトリではなく 1:1 マッピングのみを行うことに気付きました (これがどれほど正しいかわかりません)。に切り替えたところgulp-newer
、しばらくはうまくいきましたが、その後、再びおかしくなり始めました。
何が原因なのかわかりません。疑念はありますが、どう対処すればよいかわかりません。アドバイス、観察、改善の提案、ロマンチックなディナーに適した場所、信頼できるペットシッターなど、大歓迎です。
ティティティティ!!!
_t
編集:フリークアウト(つまり、すべてのファイルが一度にアップロードしようとする)を再現するのに苦労しており、同じことを実行するとgulp --env staging
フリークアウトが発生することもあれば、同じファイルセットで同じタスクを起動すると発生することもありますなし。たぶん、gulp-newer と gulp-changed の比較として変更された日付の使用と関係があるのでしょうか??
ダブルエディット:多分それは時々それが動作し、時には動作しない原因の競合状態ですか?node-glob または minimatch github ページで競合状態について何かを見たのを覚えています....
gulp - gulp-changed / gulp-newer + gulp-rename が機能しない
すでに処理された画像の縮小、サイズ変更、名前変更を回避しようとしましたが、「gulp-changed」を追加しても何も変わりませんでした。すべてのファイルが毎回処理されます。代わりに「gulp-newer」を試しましたが、まだ運がありません。
後になって、gulp-rename を惜しまなければ、gulp-changed が正常に動作することがわかりました。タスクに gulp-rename を使用すると、そうではありません。しかし、とにかくgulp-renameが必要です...
gulp - gulp: パイプで変更されたファイルのみを渡す
ファイルを並べ替え、一部のテキストを置き換えて、変更されたものだけを保存しようとします。私の現在のコードgulp-changed
では何もしません。
更新:gulp-cached
私はこれを自分でほとんど解決しましたが、以下の私の回答に関連する小さな問題があります。
visual-studio-2015 - gulp-changed が変更されていないファイルを除外していない
変更されていないファイルで時間のかかるタスクが発生するのを防ぐために、gulp-changedを使用しようとしています。私のgulpfile.jsは次のように設定されています:
ただし、すべてが実行されているのを見るたびに:
gulp-changedがこれらの変更されていないファイルをフィルタリングしていない理由はありますか?