2013-12-23 6 views
14

내가 디렉토리 구조가 예상대로 작동하지 :그런트 복사 평평하게 다음과 같이

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 

무엇을 제공합니까? 납작하게 사용하지 않습니까? 당신이 build에 갈 source/libraries 모든 것을 원하기 때문에 당신은 단지 flatten를 사용하는 경우

답변

20

는 글쎄, 난 사실 대신 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 생성 된 dest 경로에서 모든 경로 부분을 제거하십시오." 이유는 알 수 있습니까? – dandelion

+4

'expand' 옵션을 추가하려고 했습니까? 내가 '평평하게하다'는 것을 본 모든 때마다 나는 '팽창'으로 그것을 본다. – jakerella

+4

heh ... 그냥 문서에서 읽으세요 ... 당신이 언급 한 행 바로 위에 ":'expand' 다음 옵션을 사용하려면 'true'로 설정하십시오."('flatten'은 다음 옵션 중 하나입니다 "). ;) – jakerella