Nodejs / Gulp不会将所有文件复制到'dist'文件夹

时间:2019-10-12 06:33:34

标签: node.js express gulp

Gulp应该将所有子文件夹和文件复制到dist。但是它只复制其中一半,即使我更改了它们的名称等,某些文件夹也将被忽略(没有特殊字符,与正确复制后的文件夹相同的子文件夹结构...)-没有任何效果。我只是看不到任何图案。

运行gulp时没有错误消息。没有什么可以帮助我发现错误。

这是我的gulpfile.babel.js:

from itertools import chain
import numpy as np
import pandas as pd

df = pd.DataFrame([['AA', '20', 'T01,T02'], ['BB', '22', 'T03,T02,T03'], ['CC', '24', 'T01,T05'], ['DD', '21', 'T02,T06']], columns=('name', 'age', 'taskID'))
df["taskID"] = df["taskID"].str.split(",")

arr = np.repeat(df.iloc[:,:-1].values, df["taskID"].apply(len), axis=0)
df2 = pd.DataFrame(arr, columns=df.columns[:-1])
df2["TaskID"] = list(chain(*df["taskID"]))

df2

很多文件夹,例如import path from 'path' const gulp = require('gulp'); const sourcemaps = require('gulp-sourcemaps'); const babel = require('gulp-babel'); const concat = require('gulp-concat'); import del from 'del'; import nodemon from 'gulp-nodemon'; const paths = { js: ['./**/*.js', '!dist/**', '!node_modules/**', '!coverage/**', '!./*.test.js'], statics: ['./package.json', './.gitignore', './.env', './templates/**/**/*'], resources: ['./resources/**/*'], public: ['./public/**/*'], templates: ['./templates/**/**/**/*'], tests: './server/tests/*.js', } gulp.task('clean', function (done) { del.sync(['dist/**', 'dist/.*', 'coverage/**', '!dist', '!coverage']) done() }); gulp.task('copy', function (done) { gulp.src(paths.statics).pipe(gulp.dest('dist')) gulp.src(paths.resources).pipe(gulp.dest('dist/resources')) gulp.src(paths.public).pipe(gulp.dest('dist/public')) gulp.src(paths.templates).pipe(gulp.dest('dist/templates')) done() }) gulp.task('build', function (done) { gulp.src([...paths.js, '!gulpfile.babel.js'], { base: '.' }) .pipe(babel( { presets: ['@babel/env'] } )) .pipe(gulp.dest('dist')) done() }) gulp.task('start', function (done) { nodemon({ script: path.join('dist', 'index.js'), delay: 1000, ext: 'js', tasks: ['clean', 'copy', 'build'], ignore: ['node_modules/**/*.js', 'dist/**/*.js'], }) done() }) gulp.task('serve', gulp.series('copy', 'build', 'start')) gulp.task('default', gulp.series('serve')) 中的文件夹dashboard不会复制到dist文件。

这是我的结构:

routes

1 个答案:

答案 0 :(得分:1)

您的copy任务正在创建多个流,其中多次调用gulp.src。合并它们的正确方法是使用merge-stream

const mergeStream =   require('merge-stream');

gulp.task('copy', function () {
  return mergeStream(
    gulp.src(paths.statics).pipe(gulp.dest('dist')),
    gulp.src(paths.resources).pipe(gulp.dest('dist/resources')),
    gulp.src(paths.public).pipe(gulp.dest('dist/public')),
    gulp.src(paths.templates).pipe(gulp.dest('dist/templates'))
  );
})

或者,由于您只是在dist文件夹中复制文件夹结构,因此您也可以这样做:

gulp.task('copy', function () {
  return gulp.src([...paths.statics, 
                   ...paths.resources,
                   ...paths.public,
                   ...paths.templates], 
                   {base: '.'})
          .pipe(gulp.dest('dist'))
})