Gulp 捆绑 + Browserify 多个文件
Gulp Bundle + Browserify on multiple files
所以我有一个简单的 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
一站式 gulp 任务。
我在网上搜索过,但似乎找不到任何相关内容,如有任何帮助或建议,我们将不胜感激,在此先感谢您。
如果你想为每个文件创建一个包,你需要循环各个文件,为每个文件创建一个流,然后合并流(使用 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"))
}));
});
所以我有一个简单的 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
一站式 gulp 任务。
我在网上搜索过,但似乎找不到任何相关内容,如有任何帮助或建议,我们将不胜感激,在此先感谢您。
如果你想为每个文件创建一个包,你需要循环各个文件,为每个文件创建一个流,然后合并流(使用 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"))
}));
});