Javascript 使用多个独立的gulpfile构建不同的bundle

Javascript 使用多个独立的gulpfile构建不同的bundle,javascript,symfony,bundle,gulp,Javascript,Symfony,Bundle,Gulp,这是场景 假设我有一个主应用程序,里面有不同的子应用程序(或者在symfony world中有捆绑包)。每个应用程序都有自己的脚本和样式,彼此独立。这些子应用程序应该尽可能少地耦合,因为它们越来越多,或者可以随时删除 应用程序目录 样式(主应用程序) 脚本(主应用程序) 子应用程序 附件1 风格 剧本 gulpfile.js 附件2 风格 剧本 gulpfile.js 距离(目标) maincss.css(mainapp) mainjs.js(mainapp) 子应用1 sty

这是场景

假设我有一个主应用程序,里面有不同的子应用程序(或者在symfony world中有捆绑包)。每个应用程序都有自己的脚本和样式,彼此独立。这些子应用程序应该尽可能少地耦合,因为它们越来越多,或者可以随时删除

应用程序目录

  • 样式(主应用程序)
  • 脚本(主应用程序)
  • 子应用程序

    • 附件1
      • 风格
      • 剧本
      • gulpfile.js
    • 附件2
      • 风格
      • 剧本
      • gulpfile.js
  • 距离(目标)

    • maincss.css(mainapp)
    • mainjs.js(mainapp)
    • 子应用1
      • style.css(app1样式)
      • script.js(app1js)
  • gulpfiles.js
每个gulpfile都应该是自我关注的,因为它们可以有不同的构建要求(更少或更简单,缩小或不缩小,…)

我正在尝试实现一个sceanrio,其中主gulpfile使用目标目录调用所有子应用gulpfile。每个子gulpfile生成其文件并将其复制到目标目录

你能告诉我一个很好的方法来完成这个吗

我找到了chug(),但当我阅读时,我发现一个讨论是,这不是正确的方法

我找不到一种符合我的黑盒方法要求的方法


thx

您可以尝试类似的方法,或者至少它会为您指明正确的方向:

main gulpfile.js 您的吞咽文件夹如下所示
  • 吞咽
    • 任务
      • task1.js
      • task2.js
    • index.js
然后index.js将要求您执行特定于每个应用程序的任务 任务文件夹中的as任务示例
通过这种方式,您可以为每个AppDownVote将您的任务分为不同的文件夹,因为您没有向我们展示您尝试的内容以及您不满意的原因。如果您可以编辑,是否将upvote即使我尝试回答您的问题,我也同意@Apolo。当您展示您自己尝试解决问题的示例时,问题会得到更好的回答问题
require('./gulp');
require('./app1/gulp');
require('./app2/gulp');
var fs = require('fs');
var path = require('path');

var onlyScripts = function(name) {
                     return /(\.(js)$)/i.test(path.extname(name));
                  };

var tasks = fs.readdirSync('./gulp/tasks/').filter(onlyScripts);

tasks.forEach(function(task) {
  require('./tasks/' + task);
});
var gulp         = require('gulp');
var sass         = require('gulp-sass');
var browserSync  = require('browser-sync');
var autoprefixer = require('gulp-autoprefixer');

gulp.task('styles', function () {

  return gulp.src([src-of-this-app])
    .pipe(sass({
      sourceComments: 'map',
      sourceMap: 'sass',
      outputStyle: 'nested'
    }))
    .pipe(autoprefixer("last 2 versions", "> 1%", "ie 8"))
    .pipe(gulp.dest([dest-of-this-app]))
    .pipe(gulpif(browserSync.active, browserSync.reload({ stream: true })));

});