我当前正在使用gulp调用bash脚本,该脚本将清理dist/目录并将适当的文件移至清理目录。我想用gulp完成此操作,因为我不确定该脚本是否可以在非* nix文件系统上运行。 到目前为止,我正在使用gulp-clean模块来清理dist/目录,但是当我尝试将所需的目录及其文件移动到dist文件夹时,目录为空。
dist/
var gulp = require('gulp'), clean = require('gulp-clean'); gulp.task('clean', function(){ return gulp.src(['dist/*'], {read:false}) .pipe(clean()); }); gulp.task('move',['clean'], function(){ gulp.src(['_locales', 'icons', 'src/page_action', 'manifest.json']) .pipe(gulp.dest('dist')); }); gulp.task('dist', ['move']);
调用gulp dist结果是在dist/目录中填充了正确的目录,但是它们都为空
gulp dist
$ ls dist/* dist/manifest.json dist/_locales: dist/icons: dist/page_action:
如何将目录及其内容复制到dist/文件夹?
您需要包括src base选项,该选项将以所需的方式保留文件结构:
base
var filesToMove = [ './_locales/**/*.*', './icons/**/*.*', './src/page_action/**/*.*', './manifest.json' ]; gulp.task('move',['clean'], function(){ // the base option sets the relative root for the set of files, // preserving the folder structure gulp.src(filesToMove, { base: './' }) .pipe(gulp.dest('dist')); });
另外,如果将所有这些源文件都放在项目的根目录中,则可能会遇到麻烦。
如果 可以的话,建议您使用一个src/文件夹,并将 所有 特定于应用程序的文件移动到该文件夹中。这使维护工作更容易进行,并防止特定于构建的文件与特定于应用程序的文件混淆。
src/
如果执行此操作,则只需在上例./中用替换所有出现的src/。
./