1

我正在尝试对多个项目使用相同的 gulpfile.js。假设我想sass()对两个不同的项目使用相同的功能。我试过像 javascript 一样传递值sass(x){.... .src(x+"/src/style/scss/*.scss")}。但它没有用。有没有为多个项目使用相同的 gulpfile.js 的例子?

function css(x) {
  return gulp
    .src(x+"/src/style/scss/*.scss")
    .pipe(plumber())
    .pipe(sass({
      outputStyle: "expanded"
    }))
    .pipe(autoprefixer())
    .pipe(gulp.dest(x+"/src/style/css"))
    .pipe(cleanCSS({
      compatibility: 'ie8'
    }))
    .pipe(rename({
      suffix: '.min'
    }))
    .pipe(gulp.dest(x+'/src/min/css'))
    .pipe(gulp.dest(x+'/dist/css'));
}

function watch(x){
   gulp.watch(x+'/src/style/scss/**', css(x));
   gulp.watch(x+'/src/js/**', js(x));
   gulp.watch(x+'/dist/**', deploy(x));
}

在命令中运行,例如:gulp watch("folder1")

它没有做任何事情。或者,它没有观看任何文件夹并运行任何任务。

4

1 回答 1

0

您可以为此使用yargs

在你的 gulpfile 中

const argv = require('yargs').argv;

将功能更改为

你可以argv[x]像这样访问变量

function watch(){
   console.log('It works!!' +argv['x']);
   gulp.watch(argv['x']+'/src/style/scss/**', css(argv['x']));
   gulp.watch(argv['x']+'/src/js/**', js(argv['x']));
   gulp.watch(argv['x']+'/dist/**', deploy(argv['x']));
}

在你的命令行中

$ gulp watch --x=folder1

希望这会有所帮助......!

于 2019-11-27T13:09:16.863 回答