Grunt重命名不起作用

时间:2013-12-30 23:34:07

标签: gruntjs building

我的目录结构如下所示:

-src/
-----pages/
----------...
-----...
-build

我的gruntfile包含以下任务:

copy: {
    all:{
        dest:"<%= builddir %>/",
        src: ["src/**/*.{yaml,yml,py,html,htm,json,css}"],
        rename:function(d, s){return d.replace("src/","");}
    }
},
builddir: "build/<%= pkg.name %>-<%= pkg.version %>-<%= date %>",

当我运行复制任务时,它会按预期将所有选定的文件复制到包含包名,版本和构建日期的目录中,但它会复制整个src目录。虽然我只想复制src目录的内容,所以我试图删除src/' from dest using the重命名`属性,但由于某种原因这不起作用。

我今天才开始使用grunt,所以我可能会在这里犯一个新手的错误。

2 个答案:

答案 0 :(得分:1)

您需要设置flatten选项,这将删除目录结构。

copy: {
    all:{
        expand: true,
        flatten: true,
        dest:"<%= builddir %>/",
        src: ["src/**/*.{yaml,yml,py,html,htm,json,css}"]
    }
}

答案 1 :(得分:1)

嗯......我认为您需要的只是cwd(当前工作目录)选项。除非你实际上想要将文件压缩成一个目录。

copy: {
    all:{
        expand: true,
        dest:"<%= builddir %>/",
        src: ["**/*.{yaml,yml,py,html,htm,json,css}"],
        cwd: "src/"
    }
}