[arrays] gulp.src가 파일에 대한 전체 경로 배열을 전달하는 것을 좋아하지 않는 이유는 무엇입니까?
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의 의도 된 목적은 아니지만 이것이 이런 식으로 작동해야한다는 것은 저에게 말이되지 않습니다. 누구든지 빛을 비출 수 있습니까?
답변
전체 경로 배열을 전달하면 각 파일이 독립적으로 처리됩니다. 글 로빙은 경로의 루트가 어디에 있는지 알지 못합니다 (사실 첫 번째 글롭을 기반으로 추측합니다). 따라서 각 파일은 포함 된 폴더에 루트가 있으며 상대 경로는 비어 있습니다.
그러나 쉬운 해결책이 있습니다. 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(...);