吞下一个文件先吞下一个文件

时间:2017-05-13 20:15:00

标签: javascript node.js gulp

我用gulp构建我的项目到一个名为 all.js 的文件中。 在我的工作区中,我有一个文件,我称之为 modules.js 。在这个文件中,我声明了所有的命名空间。 我想首先在 all.js 的顶部连接这个文件,然后才能将其余的js文件连接起来。这样我就不用担心文件顺序,也没有定义任何命名空间。

以下是我的尝试:

gulp.src("./src/main/modules.js")
    .pipe(concat("all.js"))
    .pipe(gulp.src(["./src/**/*.js", "!./src/main/modules.js"]))
    .pipe(concat("all.js"))
    .pipe(gulp.dest(dist));

但是这样, modules.js 就是我在 all.js 中看到的所有内容。其余文件根本没有写。

如何告诉gulp先将 modules.js 写入 all.js ,然后再添加其余的js文件?

谢谢!

2 个答案:

答案 0 :(得分:1)

有一种方法可以在gulp中指定连接顺序(使用'order'):

gulp
  .src("**/*.coffee")
  .pipe(coffee())
  .pipe(gulp.src("**/*.js")) // gulp.src passes through input 
  .pipe(order([
    "vendor/js1.js",
    "vendor/**/*.js",
    "app/coffee1.js",
    "app/**/*.js"
  ]))
  .pipe(concat("all.js"))
  .pipe(gulp.dest("dist"));

正如npm documentationthis good article中所述。希望这有帮助!

答案 1 :(得分:0)

你的concat之后你不能使用src。首先使用src并首先添加modules.js,然后添加其余脚本以确保其正常工作。

所以gulp.src([path-to-modules.js, path-to-rest])

在那个concat之后,所有和你的modules.js将在最重要的位置。