2014-01-19 8 views
1

프로젝트의 모든 JS 라이브러리를 하나의 파일로 연결하려고합니다. 그래서 나는 다음과 같은 파일 선택으로, 꿀꿀 거리는 소리에 concat 작업을 설정 한 :툴툴 거리기 만 폴더 (폴더가 아닌)를 선택하는지 어떻게 확인합니까?

dist : { 
    src : ["public/lib/**/*.js"], 
    dest : "public/lib.concat.js" 
} 

를 지금까지 너무 좋아. 그러나 우리 프로젝트에서는 sprintf.js을 사용합니다. 따라서 public/lib 안에 sprintf.js 디렉토리가 있고 해당 디렉토리는 grunt의 src 선택자와 일치합니다.

그 결과는 다음과 같습니다

$ grunt 
Running "concat:dist" (concat) task 
Warning: Unable to read "public/lib/sprintf.js" file (Error code: UNKNOWN). Use --force to continue. 

나는 단순히 sprintf.js 디렉토리에 대해 다른 이름을 선택 할 수 있음을 알고 있어요,하지만 난 단지에 꿀꿀 거리는 소리를 말할 수있는 방법이 있는지 알고 싶습니다 디렉토리가 아닌 실제 파일을 선택하십시오.

답변

4

사용 filter option 디렉토리를 무시 :

dist : { 
    src : ["public/lib/**/*.js"], 
    dest : "public/lib.concat.js", 
    filter: function(filepath) { 
    return !grunt.file.isDir(filepath); 
    } 
} 
+0

* * * 하위 디렉토리와 일치 시키려합니다. 단지'sprintf.js' 디렉토리 안에있는 파일을 읽길 원합니다. 그러나 grunt는 파일 인 것처럼 디렉토리를 읽으려고합니다. –

+0

내 대답이 업데이트되어 작동하는지 확인하십시오. –

+1

완벽 함. 감사 :) –

0

그것은 더 쉽게해야한다. 느낌표 포인터로 제외 할 수 있습니다.

dist : { 
    src : ["public/lib/**/*.js", "!public/lib/sprintf.js" ], 
    dest : "public/lib.concat.js" 
}