如何使用grunt-file-append
将文本附加到多个文件https://www.npmjs.com/package/grunt-file-append
grunt.initConfig({
file_append: {
default_options: {
files: [
{
append: "text to append",
prepend: "text to prepend",
input: '/path/to/input/file'
output: 'path/to/output/file'
}
]
}
}
})
如果我以这种方式编写函数,为了附加到多个文件,它会出错。
grunt.initConfig({
file_append: {
default_options: {
files: [
{
append: "text to append",
prepend: "text to prepend",
input: './path/to/input/*.html'
output: 'path/to/output/*.html'
}
]
}
}
})
我收到以下错误:
Running "file_append:default_option" (file_append) task
>> Source file "./path/to/output/*.html" not found.
Warning: Task "file_append:default_option" failed. Use --force to continue.
Aborted due to warnings.
仅附加到单个文件但不适用于多个文件, 我在这里做错了什么。
答案 0 :(得分:3)
我认为它不应该起作用。正如您在github code for grunt-file-append:
中看到的那样prepend = file.prepend || ""
append = file.append || ""
fileContent = grunt.file.read filepath
value = "#{ prepend }#{ fileContent }#{ append }"
grunt.file.write filepath, value
它只读取一个文件并附加/预先添加。
您是否尝试过grunt-contrib-concat?
答案 1 :(得分:3)
正如@jmartins提到的那样,代码并没有设置为处理/ *。html',我认为附加多个文件的唯一方法(除了修改源代码) )是在数组中有多个对象:
file_append: {
default_options: {
files: [{
prepend: 'something',
input: '<%= config.dist %>/<%= config.distScripts %>/script1.js',
output: '<%= config.dist %>/<%= config.distScripts %>/script1.js'
}, {
prepend: 'something',
input: '<%= config.dist %>/<%= config.distScripts %>/script2.js',
output: '<%= config.dist %>/<%= config.distScripts %>/script2.js'
}, {
prepend: 'something',
input: '<%= config.dist %>/<%= config.distScripts %>/script3.js',
output: '<%= config.dist %>/<%= config.distScripts %>/script3.js'
}]
}
}
当您要更新大量文件时,这并不是很好,但是如果有很多文件,那么只更新源代码就可以更轻松地完成所需的操作,或者如果没有有限列表,那么你真的不想不断更新grunt文件。
答案 2 :(得分:0)
这是我动态添加脚本标签和Id的方式
Replace all the text with specified replacement using grunt replace