我目前正在使用gulp调用一个bash脚本,该脚本将清理我的dist/目录,并将相应的文件移动到清理目录.我希望使用gulp完成这项工作,因为我不确定脚本是否能在非*nix文件系统上工作

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/目录中填充了正确的目录,但它们都是空的

$ ls dist/*
dist/manifest.json

dist/_locales:

dist/icons:

dist/page_action:

如何将目录及其内容复制到dist/文件夹?

推荐答案

您需要包括base option to src,这将以您想要的方式保留文件 struct :

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

此外,如果您的项目根目录中有所有这些源文件,您可能会遇到麻烦.

If如果可以,我建议您使用一个src/文件夹,并将all个特定于应用程序的文件移动到其中.这使维护更容易进行,并防止特定于构建的文件与特定于应用程序的文件混淆.

如果这样做,那么只需将上面示例中出现的所有./替换为src/即可.

Node.js相关问答推荐

NX无法使用缓存运行根级脚本

运行JEST测试时找不到模块&q;错误

NPM:一般的npm二进制依赖可以静态构建吗?

是否可以在MongoDB中比较和匹配引用文档中的字段

"sh:/usr/local/bin/node:当它存在于文件目录中时未找到

将图像添加到多个产品的条带 checkout 会话中

GitLab 依赖扫描需要源代码中的 package-lock.json 才能执行

在mongoose虚拟属性中处理异步操作

与诗乃一起嘲笑奈克斯

如何在 Docker 容器中 SSO 登录 AWS(使用 aws-sdk v3)

使用 NPM 三个 mocha+typescript 进行测试

为什么 FastAPI 需要 Web 服务器(即 Nginx)而不是 Express API?

BrowserRouter工作时为什么HashRouter不工作?

错误:无法检测到网络(event="noNetwork",code=NETWORK_ERROR,version=providers/5.6.8)

如何正确使用 package.json 中的关键字属性?

webpack css-loader 在外部样式表的 url() 引用中找不到图像

为什么我会收到错误:解决方法指定过多?

在单独的模块中定义 Mongoose 模型

npm install - javascript堆内存不足

mongoose 填充与对象嵌套