gpt4 book ai didi

node.js - 在*一个* gulp 任务中使用 yargs 将其应用于*所有*任务 : Why? 如何修复?

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:57 25 4
gpt4 key购买 nike

我有一个 UI 项目,其自动化工作流程基于 generator-gulp-angular 。我添加了 gulp-ng-config,以便根据环境变量以不同方式执行构建。我使用“yargs”包来提取环境标志,并使其可用于该任务。但即使该任务应该被封装,我使用 yargs 为其创建需求现在在我的整个项目中的所有 gulp 任务中都处于事件状态。

这是 ngconfig 的 gulp 任务:

var gulp = require('gulp');
var path = require('path');
var conf = require('./conf');
var gulpNgConfig = require('gulp-ng-config');
var argv = require('yargs')
.usage('This `build` or `serve` task includes an ngConfig task, whose requirements have not been met via arguments. \n LONG USAGE: <command> --environment <"production" or "sit" or "local">.\n SHORT USAGE <command> -e <"production" or "sit" or "local">')
.epilogue('For more information, see the iJoin client README.')
.demand(['e'])
.alias('e', 'environment')
.argv;

gulp.task('ngconfig', function() {
// default config:
var thisConfig = {
environment: argv.environment,
wrap: "(function () { \n 'use strict'; \n return <%= module %> \n })();"
};

gulp.src('gulp/server-config.json')
.pipe(gulpNgConfig('ijoin.apiConfig', thisConfig))
.pipe(gulp.dest(path.join(conf.paths.src, '/app/prebuild')));

});

它作为构建的一部分被调用,在这里:

gulp.task('build', ['ngconfig', 'html', 'fonts', 'other']);

当我们想要使用环境变量执行构建时,我们执行

gulp build -e local

而且,一切都工作正常!但它已经渗透到我的其他任务中。例如,当我启动本地 API 模拟服务器时,使用:

gulp stubby

它提示我没有包含必要的参数:

This `build` or `serve` task includes an ngConfig task, whose requirements have not 
been met via arguments.
LONG USAGE: <command> --environment <"production" or "sit" or "local">.
SHORT USAGE <command> -e <"production" or "sit" or "local">

Options:
-e, --environment [required]

For more information, see the iJoin client README.

Missing required arguments: e

但我的意图是,只有 ngconfig 任务才需要这些必要的参数。 (ngconfig 绝对不是 stubby 的依赖项。)那么,为什么会溢出到其他任务中,以及如何修复它?

最佳答案

由于 argv 变量添加到 ngconfig 范围之外,它也会影响其他任务的执行。

请将其移至 ngconfig 任务内

关于node.js - 在*一个* gulp 任务中使用 yargs 将其应用于*所有*任务 : Why? 如何修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32438058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com