gulp-exec中的file.path是什么意思

时间:2016-04-29 18:38:09

标签: node.js gulp

我有一些问题:https://www.npmjs.com/package/gulp-exec#usage

gulp.src('./**/**')
    .pipe(exec('git checkout <%= file.path %> <%= options.customTemplatingThing %>', options))
    .pipe(exec.reporter(reportOptions));

<%= =>file.path的含义是什么? 他们来自节点吗?你能举一个例子吗? 谢谢

2 个答案:

答案 0 :(得分:1)

它显示了通过Gulp任务流的文件的路径,该任务来自VinylVinyl将提供有关您可以使用的其他内容的更多信息。

例如,您可以通过执行此操作来获取文件名

<%= file.relative %>

答案 1 :(得分:1)

<%= =>

这些是lodash.template&#34;插值&#34;分隔符。它们允许您将任意值插入字符串。您可以在第二个参数中将这些值提供给exec()。然后,这些值可用作字符串中options对象的属性。从<%==>的所有内容都将替换为其中options属性的值。

示例:

gulp.src('.')
  .pipe(exec('cp <%= options.in %> <%= options.out %>', {in:'foo', out:'bar'}));

在上面:

  • <%= options.in %>已替换为foo
  • <%= options.out %>已替换为bar

因此执行的命令是cp foo bar

file.path

options对象不是唯一可用于插值的对象。对exec()发出的每个Vinyl file执行gulp.src()中的命令。每次执行命令时,file对象都会引用执行该命令的特定乙烯基文件。

示例:

gulp.src(['foo.txt', 'bar.txt'])
  .pipe(exec('rm <%= file.path %>', {}));

执行两个命令,每个命令对应gulp.src()匹配的每个文件:

  • rm /path/to/foo.txt
  • rm /path/to/bar.txt