sadece çocuk gulpfiles daki ana gulpfile içinde gulp
nesneyi dışa ve sonra gerektirebilir:
proje/gulpfile.js:
var gulp = require('gulp');
gulp.task('commontask', function() { });
module.exports = gulp;
project/subproject/gulpfile.js:
var gulp = require('../gulpfile.js');
gulp.task('subtask', [ 'commontask' ], function() { });
project/subproject
dizininden subtask
Çalıştırma:
> gulp subtask
[12:38:05] Using gulpfile ~/project/subproject/gulpfile.js
[12:38:05] Starting 'commontask'...
[12:38:05] Finished 'commontask' after 50 μs
[12:38:05] Starting 'subtask'...
[12:38:05] Finished 'subtask' after 20 μs
DÜZENLEME: üst gulpfile aynı paketin bir parçası değilse yukarıda çalışmaz (ör my-app
), ancak bağımlı olduğunuz başka bir paketten (örneğin, my-common-tasks
). Bunun nedeni, modülün Node.js dosyasında yüklenmesi yolunda, iki örnekle gulp
: my-common-tasks
'dan biri ve my-app
'dan biri ile sonuçlanır. Görevleriniz örneğinde my-common-tasks
olarak tanımlanacak, ancak gulp
CLI örnekte my-app
arasındaki görevleri arayacaktır.
Bunun yerine my-app
den my-common-tasks
için gulp
örneği geçmek zorunda:
benim küçük ortak görevler/ gulpfile.js:
module.exports = function(gulp) {
gulp.task('common-task', function() { });
};
my-app/gulpfile.js:
var gulp = require('gulp');
require('my-common-tasks')(gulp);
gulp.task('sub-task', [ 'common-task' ], function() { });
Evet, düşündüğüm buydu. Ama projelerim fiziksel olarak ayrıldı. Bu yüzden 'ebeveyn' gulpfile'ı basit bir düğüm modülüne paketlemeyi, alt-projelerde bağımlılık olarak kullanmamayı ve node_modules'den gelen ebeveynlik görevlerini yüklemeyi düşünüyordum. Bu size sağlam bir çözüm gibi geliyor mu? – cschuff
Ayrıca, verileri düğüm ortam değişkenlerinden de yükleyebilirsiniz. Aynı zamanda kolay olurdu. –
@cschuff Düzenlememe bakın. –