Gruntjs Grunt复制展平未按预期工作

Gruntjs Grunt复制展平未按预期工作,gruntjs,grunt-contrib-copy,Gruntjs,Grunt Contrib Copy,我的目录结构如下: source/ libraries/ d3.js lodash.js //etc copy: { main: { files: [ { src: ["source/libraries/*.js"], dest: "build/", flatten: true } 我有如下grunt复制设置: source/ librari

我的目录结构如下:

source/
    libraries/
        d3.js
        lodash.js
        //etc
copy: {
  main: {
    files: [
      {
        src: ["source/libraries/*.js"], 
        dest: "build/", 
        flatten: true
      }
我有如下grunt复制设置:

source/
    libraries/
        d3.js
        lodash.js
        //etc
copy: {
  main: {
    files: [
      {
        src: ["source/libraries/*.js"], 
        dest: "build/", 
        flatten: true
      }
我希望它将输出平坦化为构建,这样我就可以

build/
    d3.js
    //etc
相反,我在构建中得到了原始目录结构的复制:

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

有什么好处?我没有正确地使用flatte吗?

好吧,如果您只使用
flatte
,因为您希望
源代码/库中的所有内容都进入
构建
,我建议实际使用
cwd
(当前工作目录)选项。另一方面,如果在
source/libraries
中确实有子文件夹,那么您可能希望
src
行为
source/libraries/***.js

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

copy: {
  main: {
    files: [
      {
        src: ["*.js"],
        dest: "build/",
        cwd: "source/libraries/"
      }
    ]
  }
对于另一种情况,也许是这个?(注意
expand
选项设置为
true


使用cwd确实解决了我的问题。但是,根据grunt文档,展平也应该起作用:
“展平从生成的dest路径中删除所有路径部分。”
您知道为什么它不起作用吗?您是否也尝试添加了
展开
选项?每次我看到
展平
时,我都会看到
展开
。呵呵。。。只要读一下文件。。。您提到的这一行正上方是:“
expand
设置为
true
,以启用以下选项:”(
flatte
是“以下选项”之一)。)