gulp로 디렉토리를 재귀 적으로 복사하는 방법은 무엇입니까?
작업 디렉토리에서 서버 (같은 기계)로 프로젝트를 준비하려고합니다. 다음 코드를 사용하십시오.
gulp.src([
'index.php',
'css/**',
'js/**',
'src/**',
])
.pipe(gulp.dest('/var/www/'));
모든 파일이 복사되는 것을 볼 수 있습니다. 그러나 그것은 dir 구조를 평평하게합니다-모든 디렉토리는 복사되지만 모든 파일은 루트에 배치됩니다/var/www
Gulp는 훌륭한 빌드 도구처럼 보이지만 항목을 복사하는 것은 간단한 과정이어야합니다?
다음은 폴더 구조를 병합하지 않고 작동합니다.
gulp.src(['input/folder/**/*']).pipe(gulp.dest('output/folder'));
는 '**/*'
중요한 부분입니다. 그 표현은 강력한 파일 선택 도구 인 glob 입니다. 예를 들어 .js 파일 만 복사하려면 다음을 사용하십시오.'input/folder/**/*.js'
완전한 디렉토리 구조를 복사 gulp
하려면 gulp.src()
메소드 의 기반이 제공되어야합니다 .
따라서 gulp.src( [ files ], { "base" : "." })
위의 구조에서 모든 디렉토리를 재귀 적으로 복사하는 데 사용할 수 있습니다.
나처럼, 이것을 잊어 버릴 수 있다면 다음을 시도하십시오.
gulp.copy=function(src,dest){
return gulp.src(src, {base:"."})
.pipe(gulp.dest(dest));
};
따라서 모든 경로가 동일한 기본 경로를 갖는 경우 기본 작업을 제공하는 솔루션이 작동합니다. 그러나 다른 기본 경로를 제공하려는 경우 여전히 작동하지 않습니다.
이 문제를 해결하는 한 가지 방법은 경로의 시작을 상대적으로 만드는 것입니다. 귀하의 경우 :
gulp.src([
'index.php',
'*css/**/*',
'*js/**/*',
'*src/**/*',
])
.pipe(gulp.dest('/var/www/'));
이것이 효과가있는 이유는 Gulp가 기본을 첫 번째 명시 적 청크의 끝으로 설정하기 때문입니다. 선행은 cwd에서 기본을 설정합니다 (우리 모두가 원하는 결과입니다).
폴더 구조에 두 번 일치 할 수있는 특정 경로가 없는지 확인할 수있는 경우에만 작동합니다. 예를 randomjs/
들어와 레벨이 같으면 js
둘 다 일치하게됩니다.
이것이 최상위 gulp.src 함수의 일부로 이것을 포함시키는 것으로 밝혀진 유일한 방법입니다. 그러나 각 glob을 분리하여 플러그인을위한 기본 디렉토리를 지정할 수있는 플러그인 / 함수를 작성하는 것은 간단 할 것입니다.
폴더의 전체 내용을 다른 폴더에 재귀 적으로 복사하려면 gulp에서 다음 windows 명령을 실행할 수 있습니다.
xcopy /path/to/srcfolder /path/to/destfolder /s /e /y
마지막 /y
옵션은 덮어 쓰기 확인 메시지를 표시하지 않는 것입니다.
Linux에서는 gulp에서 다음 명령을 실행할 수 있습니다.
cp -R /path/to/srcfolder /path/to/destfolder
당신이 사용할 수있는 꿀꺽 - 임원 또는 꿀꺽 - 실행 꿀꺽에서 시스템 명령을 실행하는 플러그인.
관련된 링크들:
참고 URL : https://stackoverflow.com/questions/25038014/how-do-i-copy-directories-recursively-with-gulp
'Programing' 카테고리의 다른 글
iPhone 디버깅 : '프로세스를 수행하지 못했습니다'를 해결하는 방법? (0) | 2020.06.04 |
---|---|
MacOS에서 Boost를 어떻게 설치합니까? (0) | 2020.06.04 |
Express.js에서 next ()를 사용하여 다음 미들웨어에 변수 전달 (0) | 2020.06.04 |
HashSet과 HashMap의 차이점은 무엇입니까? (0) | 2020.06.04 |
Python-단어가 문자열에 있는지 확인 (0) | 2020.06.04 |