有没有办法从我的gulp任务中运行package gulp任务?这是我的文件结构:
Root
|
|-- Gulpfile.js (task: get-files)
|
|-- node_modules
|
|-- packageA
|
|-- gulpfile.js (task: compile-custom)
我想在我自己的gulpfile中的compile-custom
任务中运行来自packageA
的{{1}}任务。理想情况下,我还可以从get-files
任务获得回调,以了解它何时完成。
答案 0 :(得分:1)
我建议不要根据需要从另一个gulpfile运行任务,尤其是从node_modules包中。不想这样做的原因是由于包可以更改/更新然后因此而破坏您的代码。
最好你只需将你想要的gulpfile任务复制到你的gulpfile中并将其合并到你的项目中,或者只是创建一个新的文件,你可以很容易地区分它与你的gulpfile是分开的,只需要它就可以调用它。你自己的gulfile就像你任何其他包和/或JS函数一样。使用其中任何一个选项时,请不要忘记将依赖项安装到package.json
文件中,然后运行npm install
。
注意:要在gulp任务中运行gulp任务,您可以使用
gulp.start('taskname')
尽管只有在完全必要时才应使用以下内容。此外,将在较新版本的Gulp v4(refer to this)中弃用。调用任务的方法是通过创建上面提到的函数并在gulpfile中调用该函数。
gulp函数调用示例:
var someFile = require('./someFile.js');
gulp.task('my-custom-task', function () {
someFile.doSomething('foo', 'bar');
});
如果你的函数异步执行某些操作,它应该在最后调用一个回调,所以gulp能够知道它何时完成:
var someFile = require('./someFile.js');
gulp.task('my-custom-task', function (callback) {
someFile.doSomething('foo', 'bar', callback);
});