【发布时间】:2017-12-18 17:31:21
【问题描述】:
假设我想将所有 js 文件包含在以特定顺序连接的源文件夹中(使用 gulp-concat)。但是,如果有生产标志,我只想包含某些文件。
例如,在生产中我需要这些文件:
- modals.js
- utilities.js
- analytics.js
- signup.js
- cookies.js
但是,对于本地和暂存,我不想要这两个:
- analytics.js
- cookies.js
是否可以使用 yargs 和 gulp-if 来指定它?我知道我可以有两个来源列表,例如:
if (argv.production) {
return gulp.src([
'modals.js',
'utilities.js',
'analytics.js',
'signup.js',
'cookies.js'
])
} else if (argv.staging) {
return gulp.src([
'modals.js',
'utilities.js',
'signup.js',
])
}
但是,这意味着我没有遵守 DRY 原则,只是觉得自己很傻而且容易出错。如果任务具有生产标志,我能否以某种方式将它们拼接为一个仅包含分析和 cookie 等内容的单一来源?
在理想情况下,我可以在 gulp.src 数组中注入 gulp if 语句,如果传递了正确的标志,它将只包含生产专用文件。
一些大胆的想法: - 我应该在这里创建两个文件吗?一个包含跨环境所需的一切的基础,然后是特定于生产的基础,然后将它们结合起来?看起来不必要的复杂,但可以解决问题。
【问题讨论】:
标签: javascript node.js gulp yargs