Gulp Bundle + Browserify多个文件
Gulp Bundle + Browserify on multiple files
所以我有一个简单的gulp任务函数,目前转换我的主。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中放置多个bundle ?我的理想结果是能够做到:
主要。
otherPage。
otherPage2。
All in one gulp任务。
我在网上搜索过,但似乎找不到任何相关的东西,任何帮助或建议都很感激,提前谢谢你。
如果你想为每个文件创建一个bundle,你需要在各自的文件上循环,为每个文件创建一个流,然后合并流(使用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"))
}));
});
上面的操作要求您手动维护一个文件列表作为数组。也可以编写一个任务,将app
目录中的所有.jsx
文件捆绑在一起,而不必维护文件的显式数组。您只需要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 任务中文件夹中的文件子集使用 Browserify
- Browserify生成一个*巨大的*输出文件
- 使用Gulp和Browserify捆绑多个文件
- 浏览包含package.json的文件夹时,Browserify会覆盖自己的配置
- 是否可以将Browserify API用于某些JS文件的字符串内容
- 如何分离文件中的角度模块和需要使用Browserify
- Browserify—使用fs将文件从服务器加载到客户机
- Gulp Bundle + Browserify多个文件
- 如何将browserify——require文件传递给angular模块
- Browserify是否尊重文件作用域
- 如何在同一个browserify命令中对文件进行最小化和因子绑定
- 对已经被浏览过的文件进行Browserify
- 我如何将browserify应用到我的gulp文件
- Browserify-rails不能加载包含JSX的js文件
- 使用Browserify API,在本地文件上使用require和exclude
- Browserify需要npm库中的兄弟文件
- Browserify错误:解析文件,意外令牌
- Browserify-提及同一文件中的函数
- 使用 Browserify/Babel/node.js您是否需要一个基于变量字符串的文件
- Typescript,Browserify和angularjs超越了两个文件示例