タイトルは多少曖昧に聞こえるかもしれませんが、 ModuleAがModuleBとModuleBに依存するように、私たちは三つのモジュールModuleA、ModuleB、およびModuleCがあるとしModuleCに依存します。 ModuleAに対してタスクを実行する必要があるときは、依存関係に対していくつかのタスクを実行する必要があることもよくあります。ModuleBとModuleCここでは、gulpサブモジュールが動作します。 Gulpサブモジュールは、依存モジュールのタスクがその依存関係の適切なタスクをトリガーするように、依存モジュールのタスクとその依存関係の依存関係を定義します。gulp-submoduleを介して依存関係が注入され、gulp-submoduleを介して依存関係があるモジュールでgulpタスクを実行すると失敗します。
フラットな構造の場合、つまりSomeModuleは、独自の依存関係のない他のモジュールに依存します。しかし、それらの依存関係のいずれかがそれ自身の依存性を持つと、全体の生態系は、暴力団が特定の仕事を見つけることができないことを示すあいまいなエラーメッセージで壊れます。
ここにデモコードがあります。これをローカル環境でテストするには、少なくともgulpをグローバルパッケージとしてインストールし、gulpとgulp-submoduleの両方をプロジェクトのローカルパッケージとしてインストールする必要があります。
モジュールa.gulpfile.js
const gulp = require("gulp");
require("gulp-submodule")(gulp);
gulp.submodule("module-b", {filepath: "module-b.gulpfile.js"});
gulp.task("default", ["module-b:default"],() => {
console.log("Running task 'default' for module 'module-a'...");
});
モジュールb.gulpfile.js
const gulp = require("gulp");
require("gulp-submodule")(gulp);
gulp.submodule("module-c", {filepath: "module-c.gulpfile.js"});
gulp.task("default", ["module-c:default"],() => {
console.log("Running task 'default' for module 'module-b'...");
});
モジュールc.gulpfile.js
const gulp = require("gulp");
gulp.task("default", [],() => {
console.log("Running task 'default' for module 'module-c'...");
});
一気--gulpfileモジュール-a.gulpfile.js
[7時15分27秒:0あなたは、モジュールa.gulpfile.js上のタスクのデフォルト」を実行したら、このような出力を得ます] gulpfile module-a.gulpfile.jsを使用する
[07:15:27] 'module-b:module-c:default'というタスクがgulpfileにありません
[07:15:27]こうした名前を持つタスクがdefinされていないものの、1は気づくかもしれませんが、がぶ飲みは「デフォルト:モジュール-Cモジュール-B」と呼ばれる特定のタスクを探している
書式設定の適切gulpfileいずれかのプロジェクトファイルで編集または参照されます。