我有一个名为toInject.js的JavaScript文件。我希望通过grunt任务将此文件的内容注入另一个JavaScript文件,代替注释占位符/* === toInject.js placeholder === */
。如果需要什么配置,可以执行哪些繁琐的任务?
grunt任务之前的两个文件都已运行:
toInject.js
alert('hello world');
myScript.js
function doSomething() {
/* === toInject.js placeholder === */
}
grunt任务运行后对myScript.js的更改:
myScript.js
function doSomething() {
alert('hello world');
}
答案 0 :(得分:2)
您可以动态设置任务配置:
module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-replace');
grunt.initConfig({
replace: {
dist: {
options: {
patterns: [{
match: 'foo',
replacement: 'bar'
}]
},
files: [
{expand: true, flatten: true, src: ['src/index.html'], dest: 'build/'}
]
}
}
});
// register custom task
grunt.registerTask('replaceByFileContents', 'Description', function() {
// get files
grunt.file.expand({cwd: 'src', '**/*.js'}).map(function(file) {
// set config: replace 'index.js' by index.js content
grunt.config.set('replace.dist.option.patterns', {
match: file,
replacement: grunt.file.read(file)
});
// run task
grunt.task.run(replace:dist)
})
});