如何使用Grunt将指定JSON文件复制到原目录并重命名为_en.json?
用Grunt-contrib-copy实现文件复制并重命名
仅使用Grunt和grunt-contrib-copy插件完全可以实现这个需求,不需要额外插件。核心是通过rename函数动态修改目标文件名,同时保留原文件的目录结构。
完整Grunt配置示例
module.exports = function(grunt) { grunt.initConfig({ copy: { t9n_duplicate: { files: [ { cwd: "src/app/js", src: ["**/t9n/*t9n.json", "**/t9n/*T9N.json"], // 匹配大小写不同的后缀文件 expand: true, rename: function(dest, src) { // 将文件名末尾的t9n.json/T9N.json替换为t9n_en.json return src.replace(/(t9n|T9N)\.json$/i, '$1_en.json'); } } ] } } }); grunt.loadNpmTasks('grunt-contrib-copy'); grunt.registerTask('default', ['copy:t9n_duplicate']); };
关键配置说明
cwd:指定相对路径的根目录,所有src路径都基于此目录查找。src:用glob模式匹配所有t9n子目录下、以t9n.json或T9N.json结尾的文件(i修饰符忽略大小写)。expand: true:开启动态文件匹配,让cwd和src的配置生效,保留原目录结构。rename函数:这是实现重命名的核心,它接收源文件路径(相对于cwd),通过正则替换将文件名的t9n.json后缀替换为t9n_en.json,最终文件会被复制到原目录下。
执行grunt命令后,即可得到你想要的目录结构:每个t9n目录下会同时保留原文件和新增的_en.json后缀文件。
内容的提问来源于stack exchange,提问作者Carson Wood
相关产品推荐
相关产品推荐

