javascript - 使用 gulp 将多个特定文件和文件夹复制到另一个目录

标签 javascript gulp

我正在尝试使用 gulp.srcgulp.dest 从我的基本目录 . 复制多个文件和文件夹到一个新的子目录 dist.

基本目录是 Symfony 项目的根目录。

这是我的 gulpfile:

var files = [
  './app**/*.*',
  './bin**/*.*',
  './src**/*.*',
  './tests**/*.*',
  './var/',
  './vendor/',
  './composer.json']

gulp.task('distribute', function() {
  return gulp.src(files , { base: '.' }).pipe(gulp.dest('./dist'));
});

我只是不明白,为什么这行不通。结果,我得到一个包含指定文件夹内容的 dist 文件夹。所以 appbinsrc 等作为根文件夹丢失了。

最佳答案

自己移动目录

基于 Use gulp to select and move directories and their files ,将 ./ 用于 base 选项并确保路径正确:

var files = [
  './app/**/*.*',
  './bin/**/*.*',
  './src/**/*.*',
  './tests/**/*.*',
  './var/',
  './vendor/',
  './composer.json'
];

gulp.task('distribute', function() {
  return gulp.src(files , { base: './' })
    .pipe(gulp.dest('dist'));
});

在每个目录中移动文件

不要使用 base 选项并稍微更改路径。

var files = [
  'app/**/*.*',
  'bin/**/*.*',
  'src/**/*.*',
  'tests/**/*.*',
  'var/',
  'vendor/',
  'composer.json'
];

gulp.task('distribute', function() {
    return gulp.src(files)
        .pipe(gulp.dest('./dist'));
});

将每个目录作为一个任务进行威胁的灵活方式

如果您想自己移动文件夹,只需使用任务生成器函数为每个文件夹创建一个任务即可。

function moveDirTask(dir, dest) {
    return function() {
        return gulp.src(`${dir}/**/*`)
            .pipe(gulp.dest(`${dest}/${dir}/`));
    };
}

gulp.task('move-app', moveDirTask('app', 'dest'));
gulp.task('move-bin', moveDirTask('bin', 'dest'));
gulp.task('move-src', moveDirTask('src', 'dest'));
gulp.task('move-tests', moveDirTask('tests', 'dest'));
// etc.

gulp.task('distribute', [
    'move-app',
    'move-bin',
    'move-src',
    'move-tests'
    // etc.
], function() {
    return gulp.src('composer.json')
        .pipe(gulp.dest('dest'));
});

关于javascript - 使用 gulp 将多个特定文件和文件夹复制到另一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43867053/

相关文章:

javascript - 如何在滚动列表中选择可见元素

javascript - jquery如何在href中添加onclick

javascript - NodeJS 未加载外部 javascript

javascript - 验证电子邮件唯一性时的 AngularJS/奇怪行为

javascript - 多个具有相同名称的源映射会导致浏览器崩溃? (gulp-sourcemaps)

javascript - 访问父 Controller 中指令的html内容

javascript - 单个 gulp-if 调用内有多个流?

node.js - 为什么我必须以管理员身份调用 npm link?

javascript - 如何将 gulp.watch() 传递给管道?

node.js - 从另一个 node.js 脚本启动 gulp 任务