也许我的方法有问题,但我有以下情况:
Perhaps it's something wrong with my approach but I have a following situation:
component-a
.它的一项任务(例如构建)构建组件并在 dist 文件夹中创建一个组合的 js 文件component-b
.它的一项任务(例如构建)构建组件并在 dist 文件夹中创建一个组合的 js 文件component-a
that has a gulpfile. One of its tasks (eg. build) builds the component and creates a combined js file in dist foldercomponent-b
that has a gulpfile. One of its tasks (eg. build) builds the component and creates a combined js file in dist folder我不知道如何从/components/component-?/gulpfile.js 执行构建任务.是否有可能或者我应该以其他方式处理这种情况?
What I don't know is how to execute the build task from /components/component-?/gulpfile.js. Is it even possible or I should deal with this situation otherwise?
使用 Node 的 child_process#spawn<从不同的目录运行 Gulpfile 非常简单/code> 模块.
尝试根据您的需要调整以下内容:
Try adapting the following to your needs:
// Use `spawn` to execute shell commands with Node
const { spawn } = require('child_process')
const { join } = require('path')
/*
Set the working directory of your current process as
the directory where the target Gulpfile exists.
*/
process.chdir(join('tasks', 'foo'))
// Gulp tasks that will be run.
const tasks = ['js:uglify', 'js:lint']
// Run the `gulp` executable
const child = spawn('gulp', tasks)
// Print output from Gulpfile
child.stdout.on('data', function(data) {
if (data) console.log(data.toString())
})
虽然使用 gulp-chug
是解决此问题的一种方法,但 它已被 gulp
的维护者列入黑名单 因为...
Although using gulp-chug
is one way to go about this, it has been blacklisted by gulp
's maintainers for being...
执行,太复杂,只是将 gulp 用作 globber"
"execing, too complex and is just using gulp as a globber"
官方黑名单声明...
没有理由存在,使用 require-all 模块或节点的 require"
"no reason for this to exist, use the require-all module or node's require"
这篇关于从一个 gulpfile.js 从另一个 gulpfile.js 运行 gulp 任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!