14

我的目录结构如下:

source/
    libraries/
        d3.js
        lodash.js
        //etc

我的 grunt-copy 设置如下:

copy: {
  main: {
    files: [
      {
        src: ["source/libraries/*.js"], 
        dest: "build/", 
        flatten: true
      }

我希望它将输出扁平化为构建,这样我就可以拥有

build/
    d3.js
    //etc

相反,我在构建中获得了原始目录结构的复制:

build/
    source/
        libraries/
            d3.js
            //etc

是什么赋予了?我没有正确使用 flatten 吗?

4

1 回答 1

21

好吧,如果您只是flatten因为希望所有内容都source/libraries进入build,我建议您实际使用cwd(current working directory) 选项。另一方面,如果您实际上有子文件夹,source/libraries那么您可能希望该src行是source/libraries/**/*.js.

在任何情况下,如果您可以使用cwd它,它将如下所示:

copy: {
  main: {
    files: [
      {
        src: ["*.js"],
        dest: "build/",
        cwd: "source/libraries/"
      }
    ]
  }

对于另一种情况,也许是这个?(注意expand选项设置为true

copy: {
  main: {
    files: [
      {
        src: ["source/libraries/**/*.js"],
        dest: "build/",
        flatten: true,
        expand: true
      }
    ]
  }
}
于 2013-12-23T23:28:14.753 回答