gpt4 book ai didi

javascript - Gulp Bundle + Browserify 处理多个文件

转载 作者:数据小太阳 更新时间:2023-10-29 06:00:26 24 4
gpt4 key购买 nike

所以我有一个简单的 gulp 任务函数,它当前将我的 main.jsx 转换为 main.js 文件:

gulp.task("bundle", function () {
return browserify({
entries: "./app/main.jsx",
debug: true
}).transform(reactify)
.bundle()
.pipe(source("main.js"))
.pipe(gulp.dest("app/dist"))
});

我想知道是否可以在这个 gulp.task 中放入多个包?我理想的结果是能够做到:

  • main.jsx 到 main.js

  • otherPage.jsx 到 otherPage.js

  • otherPage2.jsx 到 otherPage2.js

一口气完成任务。

我在网上搜索过,但似乎找不到任何相关内容,非常感谢任何帮助或建议,在此先感谢您。

最佳答案

如果你想为每个文件创建一个包,你需要循环各个文件,为每个文件创建一个流,然后合并流(使用 merge-stream ):

var merge = require('merge-stream');

gulp.task("bundle", function () {
var files = [ "main", "otherPage", "otherPage2" ];
return merge(files.map(function(file) {
return browserify({
entries: "./app/" + file + ".jsx",
debug: true
}).transform(reactify)
.bundle()
.pipe(source(file + ".js"))
.pipe(gulp.dest("app/dist"))
}));
});

以上要求您手动将文件列表维护为一个数组。也可以编写一个任务,将所有 .jsx 文件捆绑在 app 目录中,而无需维护文件的显式数组。你只需要 glob为您确定文件数组的包:

var merge = require('merge-stream');
var glob = require('glob');
var path = require('path');

gulp.task("bundle", function () {
var files = glob.sync('./app/*.jsx');
return merge(files.map(function(file) {
return browserify({
entries: file,
debug: true
}).transform(reactify)
.bundle()
.pipe(source(path.basename(file, '.jsx') + ".js"))
.pipe(gulp.dest("app/dist"))
}));
});

关于javascript - Gulp Bundle + Browserify 处理多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40273966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com