【问题标题】:How to execute a command against every file, replacing the contents of each file?如何对每个文件执行命令,替换每个文件的内容?
【发布时间】:2019-11-30 00:11:29
【问题描述】:

对为此使用模块不感兴趣。

我相信要遍历文件夹中的所有文件,我可以这样做:

gulp.src(__dirname + '\\mysource\\**\\*.php', {read: false})

对于找到的每个文件,我都想运行一个命令,并将内容保存在该文件中。
(php -w FILE > FILE)

我的理解是我可以用“spawn”来做到这一点,

.pipe(spawn('php', ['-w'], ...))

但我不确定如何获得“当前文件”,除非我执行某种“forEach”。

【问题讨论】:

  • 查看 glob npmjs.com/package/glob 例如 glob.sync 它返回找到的文件数组,您可以在其中执行 forEach

标签: php npm gulp


【解决方案1】:

这是一个使用https://www.npmjs.com/package/glob glob.sync 的通用形式,它返回一个数组。

const gulp = require("gulp");
const glob = require("glob");
const path = require("path");

// get an array of files
const files = glob.sync(path.join(__dirname, 'mysource\**\*.php');

gulp.task('default', function (done) {

  files.forEach(function (file) {

    return gulp.src(file, {read: false})

      // .pipe(do your stuff here)

      .pipe(gulp.dest("dist/" +  path.basename(file, '.php')));
  });
  done();
});

【讨论】:

    猜你喜欢
    • 2019-03-19
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    相关资源
    最近更新 更多