有没有办法根据设置的 NODE_ENV 指定 gulp 任务?
Is there a way to specify a gulp task depending on the NODE_ENV that is set?
例如在我的 package.json 文件中,我有类似的内容:
For example in my package.json file, I have something like:
"scripts": {
"start": "gulp"
}
我有多个 gulp 任务
gulp.task('development', function () {
// run dev related tasks like watch
});
gulp.task('production', function () {
// run prod related tasks
});
如果我设置NODE_ENV=production npm start,我可以指定只运行gulp production吗?或者有更好的方法吗?
If I set NODE_ENV=production npm start, can I specify to only run gulp production? Or is there a better way to do this?
在你的默认 gulp 任务中使用一个三元组,你可以有类似的东西:
Using a single ternary in your default gulp task, you can have something like:
gulp.task('default',
[process.env.NODE_ENV === 'production' ? 'production' : 'development']
);
然后您将能够在您的 package.json 中保留单个 gulp 命令并像您所说的那样使用它:
You will then be able to keep the single gulp command in your package.json and using this like you said:
NODE_ENV=production npm start
NODE_ENV 变量的任何其他值都将启动 development 任务.
Any other value of your NODE_ENV variable will launch the development task.
您当然可以使用允许多个任务的对象进行高级用法并避免 if 树地狱:
You could of course do an advanced usage using an object allowing for multiple tasks and avoiding if trees hell:
var tasks = {
development: 'development',
production: ['git', 'build', 'publish'],
preprod: ['build:preprod', 'publish:preprod'],
...
}
gulp.task('default', tasks[process.env.NODE_ENV] || 'fallback')
请记住,当给定一组任务时,它们将并行运行.
Keep in mind that when giving an array of tasks, they will be run in parallel.
这篇关于根据 NODE_ENV 设置 gulp 任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
Browserify,Babel 6,Gulp - 传播运算符上的意外令牌Browserify, Babel 6, Gulp - Unexpected token on spread operator(Browserify,Babel 6,Gulp - 传播运算符上的意外令牌)
是否可以将标志传递给 Gulp 以使其以不同的方式Is it possible to pass a flag to Gulp to have it run tasks in different ways?(是否可以将标志传递给 Gulp 以使其以不同的方式运行任务
为什么我们需要在全局和本地安装 gulp?Why do we need to install gulp globally and locally?(为什么我们需要在全局和本地安装 gulp?)
如何一个接一个地依次运行 Gulp 任务How to run Gulp tasks sequentially one after the other(如何一个接一个地依次运行 Gulp 任务)
由于 MIME 类型而未加载样式表Stylesheet not loaded because of MIME-type(由于 MIME 类型而未加载样式表)
打开 Javascript 文件时 Visual Studio 2015 崩溃Visual Studio 2015 crashes when opening Javascript files(打开 Javascript 文件时 Visual Studio 2015 崩溃)