Running gulp task from one gulpfile.js from another gulpfile.js(从一个 gulpfile.js 从另一个 gulpfile.js 运行 gulp 任务)
问题描述
也许我的方法有问题,但我有以下情况:
Perhaps it's something wrong with my approach but I have a following situation:
- 我有一个包含 gulpfile 的
component-a
.它的一项任务(例如构建)构建组件并在 dist 文件夹中创建一个组合的 js 文件 - 我有一个包含 gulpfile 的
component-b
.它的一项任务(例如构建)构建组件并在 dist 文件夹中创建一个组合的 js 文件 - 我有一个使用这两个组件的项目.这个项目也有一个 gulpfile,我想在其中编写一个任务:
- 从/components/component-a/gulpfile.js 执行构建任务
- 从/components/component-b/gulpfile.js 执行构建任务
- concats/components/component-a/dist/build.js 和/components/component-b/dist/build.js(我知道怎么做)
- I have a
component-a
that has a gulpfile. One of its tasks (eg. build) builds the component and creates a combined js file in dist folder - I have a
component-b
that has a gulpfile. One of its tasks (eg. build) builds the component and creates a combined js file in dist folder - I have a project that uses both components. This project has a gulpfile as well and in it I would like to write a task that:
- executes build task from /components/component-a/gulpfile.js
- executes build task from /components/component-b/gulpfile.js
- concats /components/component-a/dist/build.js and /components/component-b/dist/build.js (I know how to do this)
我不知道如何从/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?
推荐答案
require('child_process').spawn;
使用 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
的维护者列入黑名单 因为...
gulp-chug
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 任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:从一个 gulpfile.js 从另一个 gulpfile.js 运行 gulp 任务
基础教程推荐
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 在for循环中使用setTimeout 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 动态更新多个选择框 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01