我正在使用Grunt编写构建系统,用于一个JavaScript库(Widget),该库会将文件合并,压缩和打包以供分发。
在合并步骤中,我想要使用grunt-contrib-concat的process选项来向一个JS文件中插入当前日期,其中说明如下:
类型:布尔对象 默认值:false
在合并之前将源文件视为模板进行处理。
- false - 不会发生任何处理。
- true - 使用grunt.template.process的默认值处理源文件。
- options object - 使用指定的选项使用grunt.template.process处理源文件。
- function(src, filepath) - 使用给定的函数,为每个文件调用一次,在处理后将返回的值用作源代码。
(默认处理选项在grunt.template.process文档中有解释)
Gruntfile.js中的合并部分:
concat: {
options: {
stripBanners: {
block: true
},
process: true,
separator: '\n /* ----- */ \n',
banner: '<%= meta.banner %>'
},
dist: {
src: ['src/Utility.js', 'src/MainClass.js', 'src/ViewClass.js', 'src/exif.js'],
dest: 'build/Viewer.js'
}
},
我在Utility.js文件中放置了以下代码行:
viewer.build_date = '<% grunt.template.today("yyyy-mm-dd") %>';
我原以为字符串会被当前日期替换,但在拼接后它变成了空的。
viewer.build_date = '';
使用的grunt版本为0.4.1。