Gulp不会覆盖JS文件

时间:2018-07-03 14:30:02

标签: javascript node.js gulp copy task

当我尝试用gulp覆盖文件时遇到问题。为了让您理解我的问题,以下是我尝试做的一个示例: 我的项目文件路径:

- Project
 |- clients
   |- clientBase
     |- JS
       |- jsexample.js
       |- jsexample2.js
     |- CSS
     |- HTML
   |- client1
     |- JS
       |- jsexample2.js
 |-dist
  1. 将基本源复制到dist
  2. 复制自定义客户端源并覆盖dist文件夹中的内容。

我在做什么

const args = require('yargs').argv;
const src = {
  base: './Project/clients/clientBase',
  client: `./Project/clients/${args.client}`,
};
const dist = './Project/dist';
const runSequence = require('run-sequence');

gulp.task('copy:base', function(){
  return gulp
    .src(`${src.base}/**/*`)
    .pipe(gulp.dest(dist))
});

gulp.task('copy:client', function(){
  return gulp
    .src(`${src.client}/**/*`)
    .pipe(gulp.dest(dist))
});

gulp.task('copy', function(){
  if (args.client) {
    runSequence('copy:base', 'copy:client');
  } else {
    runSequence('copy:base');
  }
});

实际问题

问题是copy:client任务不会覆盖dist文件。

我已经检查过的内容

我已经检查了文件路径和文件内的内容。参数client传递给了,因此该任务正在执行。

2 个答案:

答案 0 :(得分:0)

dist需要加引号:

.pipe(gulp.dest('dist'))

您可能还需要更改路径,具体取决于运行gulp的位置

答案 1 :(得分:0)

经过更多研究,我发现在default task的任务序列链中,还有另一个任务无需任何日志即可再次复制基本代码。