0

我正在运行具有文件监视功能和 BrowserSync 的 gulpfile。

我正在寻找一种方法来动态更改任务的源数组,而无需重新启动所有任务/手表/进程/服务器。我目前在我的构建过程中使用 Gulp,但是任何具有此功能的类似产品都会很棒。

例子:

gulp.task('scripts', () =>
     gulp.src(['js/file1.js'])
        .pipe(...)
        .pipe(...)
)

改成

gulp.task('scripts', () =>
     gulp.src(['js/file1.js', 'js/file2.js', 'js/file3.js'])
        .pipe(...)
        .pipe(...)
)

无需重新加载 browsersync 进程和其他 gulp.watch 函数。

4

1 回答 1

0

将您想要动态的所有路径放在一个文件中paths.json

{
  "scriptFiles": ["js/file1.js"]
}

在您gulpfile.js添加一个paths()读取和解析 JSON 文件的函数:

var fs = require('fs');

function paths() {
  return JSON.parse(fs.readFileSync('paths.json'));
}

在您的任务中,使用该功能访问您在中定义的路径paths.json

gulp.task('scripts', () =>
  return gulp.src(paths().scriptFiles)
    .pipe(...)
    .pipe(...)
);

现在您可以编辑"scriptFiles"属性的值,paths.json下次scripts运行任务时,它将使用更新后的值。

于 2016-11-15T21:33:55.563 回答