Terminal 将参数发送到gulp任务

Terminal 将参数发送到gulp任务,terminal,gulp,arguments,parameter-passing,gulp-watch,Terminal,Gulp,Arguments,Parameter Passing,Gulp Watch,关于这个话题还有其他的问题,但不是我所希望的 下面是我的gulpfile.js的简化版本 var gulp = require('gulp'); var sass = require('gulp-sass'); gulp.task('css', function() { gulp.src('site/scss/style.scss') .pipe(sass()) .pipe(gulp.dest('assets/css')) }); gulp.task(

关于这个话题还有其他的问题,但不是我所希望的

下面是我的gulpfile.js的简化版本

var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('css', function() {
    gulp.src('site/scss/style.scss')
        .pipe(sass())
        .pipe(gulp.dest('assets/css'))
});

gulp.task('watch', function() {
    gulp.watch('site/scss/**/*.scss', ['css']);
});
我可以成功做到这一点:

gulp watch
gulp watch my-domain-name
var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('css', function(name) {
    gulp.src('site/scss/style.scss')
        .pipe(sass())
        .pipe(gulp.dest('assets/css'))
});

gulp.task('watch', function(name) {
    gulp.watch('site/scss/**/*.scss', ['css', name]);
});
现在我希望能够在终端命令行中执行类似操作:

gulp watch
gulp watch my-domain-name
var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('css', function(name) {
    gulp.src('site/scss/style.scss')
        .pipe(sass())
        .pipe(gulp.dest('assets/css'))
});

gulp.task('watch', function(name) {
    gulp.watch('site/scss/**/*.scss', ['css', name]);
});

我的gulpfile在我的脑海中会是这样的:

gulp watch
gulp watch my-domain-name
var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('css', function(name) {
    gulp.src('site/scss/style.scss')
        .pipe(sass())
        .pipe(gulp.dest('assets/css'))
});

gulp.task('watch', function(name) {
    gulp.watch('site/scss/**/*.scss', ['css', name]);
});
我尝试将
name
作为手表任务的变量发送。在我的情况下,它将是
我的域名
我的其他域
,这取决于我在终端中写的内容


如何将参数从终端发送到watch任务,然后再发送到css任务?

有许多用于将参数从命令行传递到gulp的源。见:

官方配方使用 非常受欢迎的包装

因此,使用这些方法,您不会将命令行参数直接传递给监视任务,而是传递给任何任务都可以访问的对象


而且它看起来完全可以做您想要的事情,直接将命令行参数注入到每个任务的回调函数中。

有许多用于将参数从命令行传递到gulp的源。见:

官方配方使用 非常受欢迎的包装

因此,使用这些方法,您不会将命令行参数直接传递给监视任务,而是传递给任何任务都可以访问的对象


它看起来可以完全按照您的要求执行,直接将命令行参数注入每个任务的回调函数。

在windows上,我需要在终端中添加
SET NODE\u ENV=test
。然后我可以通过
process.env.NODE\u env
获得它。谢谢。在windows上,我需要在终端中添加
SET NODE\u ENV=test
。然后我可以通过
process.env.NODE\u env
获得它。谢谢