我试图在复制时将一些占位符替换为不同的文件。我的gruntfile工作正常,但在进程选项中添加替换项,它只是不起作用。下面是我gruntfile的相关章节:流程选项混乱的grunt-contrib-copy语法
grunt.initConfig({
copy: {
js: {
files: [{
expand: true,
cwd: 'src/wp-content/themes/pilau-starter/',
src: ['**/*.js'],
dest: 'public/wp-content/themes/pilau-starter/'
}],
options: {
process: function (content) {
console.log(content);
content = content.replace(/pilauBreakpointLarge/g, breakpoints.large);
content = content.replace(/pilauBreakpointMedium/g, breakpoints.medium);
return content;
}
}
},
}
});
的路径可以在代码在GitHub上加以理解:https://github.com/pilau/starter(public目录不承诺回购,因为这是一个入门的主题)。这些路径是我原始的Gruntfile中的变量,并且在所有其他任务中工作正常。
所有的变量都设置好。我已经包含了console.log(content)
来检查进程函数是否实际运行 - 它似乎不是,所以我想这是基本的语法。
有一个答案(https://stackoverflow.com/a/28600474/1087660)似乎解决了这个问题,但据我所知,这样做的方式只是很糟糕的JS语法 - 不知道它是如何被标记为正确的。
--verbose
输出运行复制任务:
Running "copy:js" (copy) task
Verifying property copy.js exists in config...OK
Files: src/wp-content/themes/pilau-starter/js/admin.js -> public/wp-content/themes/pilau-starter/js/admin.js
Files: src/wp-content/themes/pilau-starter/js/flickity.js -> public/wp-content/themes/pilau-starter/js/flickity.js
Files: src/wp-content/themes/pilau-starter/js/global.js -> public/wp-content/themes/pilau-starter/js/global.js
Files: src/wp-content/themes/pilau-starter/js/modernizr.js -> public/wp-content/themes/pilau-starter/js/modernizr.js
Files: src/wp-content/themes/pilau-starter/js/picturefill.js -> public/wp-content/themes/pilau-starter/js/picturefill.js
Files: src/wp-content/themes/pilau-starter/js/respond.js -> public/wp-content/themes/pilau-starter/js/respond.js
Options: processContent=false, processContentExclude=[], process=undefined
Options: processContent=false, processContentExclude=[], process=undefined
Copying src/wp-content/themes/pilau-starter/js/admin.js -> public/wp-content/themes/pilau-starter/js/admin.js
Reading src/wp-content/themes/pilau-starter/js/admin.js...OK
Writing public/wp-content/themes/pilau-starter/js/admin.js...OK
如果您运行带有'--verbose'标志的任务有什么输出方法reponsible?另外,'nonull'选项在调试时会很有帮助。 – steveax
您使用的是哪个版本的'grunt-contrib-copy'?您可以尝试使用'processContent'而不是'process',因为它已在v0.4.1及更早版本中使用。你也可以尝试控制台登录你的'breakpoints.large'和'breakpoints.medium',可能它们没有在你的配置中正确设置... – nemesv
运行时文件是否被复制到输出? +1 - 关于'--verbose'的建议。 – James