Gulp.js - 在文件开头插入项目详细信息

Gulp.js - Inject project details at the beginning of the file

在我的 JavaScript 文件的开头,我有一条评论,其中包含这样的项目详细信息:

// { project name } 
// { project website }
// { author }

例如它应该是这样的

/// FoobarProject 2.0.1
/// www.foobar.com/foobarproject
/// John Doe <john.doe@hotmail.com>
;(function(){
   //...
 }());

将这些详细信息与我的 package.json 对齐的最佳方法是什么?因此,当我在 package.json 中更新版本并执行我的 "build" 任务时,gulp 应该更新版本。

我不喜欢有两个文件的想法:

  1. 使用占位符的文件 "A"(例如 {{ version }})
  2. 文件 "B" 这是构建过程的结果,其中占位符填充了值。

我更喜欢构建任务直接替换文件中的值的方法。此外,在执行 minifier (uglify) 后,应在该注释前加上前缀。

所以我的问题归结为:实现 "replaceFirstThreeLinesWith":

的最佳方法是什么
gulp.task('inject-projectdetails', function(){

    var header = [ 
        util.format('// FoobarModule.js %s', pkg.version), 
        util.format('// %s', pkg.homepage),
        util.format('// %s', pkg.author),
        ].join('');

    return gulp.src('FoobarModule.js')
        .pipe( replaceFirstThreeLinesWith(header) )
        .pipe(gulp.dest('.') );
});

您可以使用 gulp-header 插件:https://www.npmjs.com/package/gulp-header