2013-12-23 63 views
14

我有一個目錄結構如下:咕嚕複製拼合工作不正常

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

我咕嚕拷貝設置如下:

​​3210

我希望它變平輸出到構建,所以我會有

build/ 
    d3.js 
    //etc 

相反,我得到了原始目錄結構在生成的複製:

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

什麼給?我沒有正確使用平整嗎?

回答

20

好吧,如果你只使用flatten,因爲你想在source/libraries一切進入build,我會用cwd(當前工作目錄)選項實際上反而建議。另一方面,如果您實際上有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 
     } 
    ] 
    } 
} 
+0

使用cwd確實解決了我的問題。但是,基於grunt文檔,它看起來像是flatten _should_也是: '「flatten從生成的dest路徑中刪除所有路徑部分。」' 你知道它爲什麼沒有嗎? – dandelion

+4

您是否嘗試添加'expand'選項?每當我看到'flatten',我都會用'expand'看到它。 – jakerella

+4

heh ...只是閱讀文檔...右上方提到的這一行是:「'expand'設置爲'true'以啓用以下選項:」('flatten'是以下選項之一「)。 ;) – jakerella