gulp.src가 파일에 대한 전체 경로 배열을 전달하는 것을 좋아하지 않는 이유는 무엇입니까?


94

gulp.src에 처리 할 파일 배열을 전달하려고합니다. 이것은 그대로의 배열입니다.

['bower_components/jquery/jquery.js',
 'bower_components/superscrollorama/js/greensock/TweenMax.min.js',
 'bower_components/superscrollorama/jquery.superscrollorama.js' ]

나는 gulp.src가 그것을 좋아하지 않는 것 같고 세 번째 요소가 최종 목적지로 통과하지 못하는 것을 발견했습니다.

다음과 같은 와일드 카드 문자를 소개하면 모든 것이 잘 작동한다는 것을 알았습니다.

['bower_components/**/jquery.js',
 'bower_components/**/js/greensock/TweenMax.min.js',
 'bower_components/**/jquery.superscrollorama.js' ]

그런데 왜? 글 로빙이 작동하는 방식과 관련이 있습니까? 나는 봤지만 찾을 수 없습니다.

아마도 이것은 globbing의 의도 된 목적은 아니지만 이것이 이런 식으로 작동해야한다는 것은 저에게 말이되지 않습니다. 누구든지 빛을 비출 수 있습니까?

답변:


162

전체 경로 배열을 전달하면 각 파일이 독립적으로 처리됩니다. 글 로빙은 경로의 루트가 어디에 있는지 알지 못합니다 (사실 첫 번째 글롭을 기반으로 추측합니다). 따라서 각 파일은 포함 된 폴더에 루트가 있으며 상대 경로는 비어 있습니다.

그러나 쉬운 해결책이 있습니다. base두 번째 인수로 키 를 사용하여 객체를에 전달하면 gulp.src모든 항목에 올바른 상대 경로가 지정됩니다.

return gulp.src(['bower_components/jquery/jquery.js',
                'bower_components/superscrollorama/js/greensock/TweenMax.min.js',
                'bower_components/superscrollorama/jquery.superscrollorama.js' ],
            {base: 'bower_components/'})
        .pipe(...);

23
또한 : 이것은 꿀꺽 꿀꺽 문서에 전혀 언급되지 않았으며, 이를 파악 하려면 문서glob-stream 를 클릭해야 합니다 .
OverZealous 2014 년

9
경로가 모두 동일한 기반을 가지지 않으면 어떻게 될까요? 특정 시나리오에 대해 비슷한 질문이 있습니다. gulp src가 필요한 json 파일의 배열 값을 읽지 않음
Andre

1
내 쪽에서 같은 질문. 실행해야 할 작업에 대해 두 가지 다른 기반이 있습니다
Cynthia Sanchez

4
파일 시스템 어딘가에 항상 공통 기반이 있을 것 입니다. 그것이 "/". gulp가 프로젝트 디렉토리의 루트에서 실행되는 경우 현재 디렉토리를 기본으로 지정하고 현재 디렉토리로 파이프하십시오. gulp.src(mixed, {base: "."}).pipe(doStuff).pipe(dest("."))
numbers1311407 2015
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.