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

米拉德·贾法里

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

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

这是我的 gulpfile.babel.js :

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'))

很多文件夹,例如文件夹dashboardroutes,并没有复制到DIST文件。

这是我的结构:

- backend
- > server
- > server > routes
- ...
- > server > routes > dashboard
- > server > routes > dashboard > *.js 
- ...
- gulpfile.babel.js
舞蹈密码

您的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'))
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Gulp Zip压缩文件夹中的所有文件

如何使用Gulp通过SSH复制文件夹?

仅复制Gulp中文件夹中的文件

Gulp不会按预期复制所有文件

Gulp-定位文件夹及其子文件夹中的所有文件

Gulp将Node应用程序的dist文件夹部署到Heroku

Gulp.js-无法将生成的文件从一个文件夹复制到另一个文件夹

Gulp观察何时调用节点app.listen()或移植到端口(liverload,nodejs和gulp)

gulp.src()包含文件,但忽略所有文件夹

Gulp观看多个文件夹

NodeJS和Gulp流和Vinyl文件对象-用于NPM包的Gulp包装器产生错误的输出

Gulp:如何读取文件夹名称?

使用Gulp将NPM模块/库复制到分发文件夹

创建War文件时,Maven不会将空目录复制到webapps文件夹

Gulp:准备dist文件夹并编辑ini文件

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

用gulp复制文件

将文件复制到文件夹和所有子文件夹中

NodeJS; Gulp从SFTP下载文件

Netbeans 11不会将库复制到dist文件夹

cordova-3.4.0不会将插件复制到平台文件夹

gulp注入指向目标文件夹

Gulp-sass不会将scss文件编译为css,而是将所有文件从scss文件夹复制到css文件夹

Gulp“开始”创建错误,而不是创建“ DIst”文件夹

WIX 不会将 DLL 复制到 system32 文件夹中

将文件夹复制到构建文件夹的 Gulp 任务给空文件夹

NodeJS - 如何将一个文件夹复制到另一个文件夹,只覆盖不同的文件?

编译 Gulp 到父文件夹

Gulp 缩小所有 css/js 并移动到具有相同结构的文件夹?