각 모듈에 대해 빌드 디렉토리에 복사해야하는 파일이 몇 개 있으며 이로부터 반복되는 코드를 최소화하는 방법을 찾고 있습니다.
gulp.src('./client/src/modules/signup/index.js')
.pipe(gulp.dest('./build/public/js/signup'));
gulp.src('./client/src/modules/admin/index.js')
.pipe(gulp.dest('./build/public/js/admin'));
다음과 같이 :
gulp.src('./client/src/modules/(.*)/index.js')
.pipe(gulp.dest('./build/public/js/$1'));
분명히 위의 방법은 작동하지 않으므로이를 수행하는 방법이 있습니까? 아니면 이미 수행하는 npm이 있습니까?
감사
답변
가장 좋은 방법은 base
다음과 같이 파일을 소싱 할 때 구성하는 것입니다 .
gulp.src('./client/src/modules/**/index.js', {base: './client/src/modules'})
.pipe(gulp.dest('./build/public/js/'));
이것은 gulp
모듈 디렉토리를 상대 경로를 결정하기위한 시작점으로 사용하도록 지시 합니다.
(또한 /**/*.js
모든 JS 파일을 포함하려는 경우 사용할 수 있습니다 …)
답변
답은 아니지만 검색 결과에이 질문이 나타나는 경우에 적용됩니다.
gulp에서 파일 / 폴더를 복사하려면
gulp.task('copy', () => gulp
.src('index.js')
.pipe(gulp.dest('dist'))
);
답변
return gulp.src('./client/src/modules/(.*)/index.js')
.pipe(gulp.dest('./build/public/js/$1'));
나를 위해 일했다!
답변
입력 디렉토리 트리 보존에 사용은 보존됩니다.
.pipe(gulp.dest(function(file) {
var src = path.resolve(SRC_FOLDER);
var final_dist = file.base.replace(src, '');
return DIST_FOLDER + final_dist;
}))
이것을 사용하여 src :를 넣을 수 있습니다 .src(SRC_FOLDER + '/**/*.js')
.
일부 플러그인은 디렉토리 트리를 평평하게 만들기 때문에 다른 응답은 나를 위해 작동하지 않았습니다 (예 : base:
on src()
} 사용) .
답변
병렬로 파일 복사
gulp.task('copy', gulp.parallel(
() => gulp.src('*.json').pipe(gulp.dest('build/')),
() => gulp.src('*.ico').pipe(gulp.dest('build/')),
() => gulp.src('img/**/*').pipe(gulp.dest('build/img/')),
)
);