3

如何使用 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.

仅附加到单个文件有效,但不适用于多个文件,我在这里做错的任何事情。

4

3 回答 3

3

我不认为它应该工作。正如您在grunt-file-append 的 github 代码中看到的:

prepend = file.prepend || ""
append  = file.append  || ""
fileContent = grunt.file.read filepath
value = "#{ prepend }#{ fileContent }#{ append }"
grunt.file.write filepath, value

它只读取一个文件并在其上附加/前置。

你试过grunt-contrib-concat吗?

于 2015-04-15T14:44:24.413 回答
3

正如@jmartins 提到的,代码没有设置为处理'something/*.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 文件。

于 2016-02-03T16:27:07.730 回答
0

这是我动态添加脚本标签和 ID 的方式

使用 grunt replace 将所有文本替换为指定的替换

于 2015-04-20T15:39:05.340 回答