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 应该更新版本。
我不喜欢有两个文件的想法:
- 使用占位符的文件 "A"(例如 {{ version }})
- 文件 "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
在我的 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 应该更新版本。
我不喜欢有两个文件的想法:
- 使用占位符的文件 "A"(例如 {{ version }})
- 文件 "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