对于正在工作的团队,我正试图在Gulp和Browserify的帮助下建立一个半自动化 JavaScript脚本和依赖项管理系统。
我什至不确定目前正在使用的工具集(以及我有限的JavaScript知识)是否可以实现我想要的目标。我相信我要达到的目标是一个很常见的情况,但是我一直无法找到我一直在寻找的信息。
考虑下图:
线表示消耗量。对于共享模块,例如Module-v和Module-y,我不希望脚本被包含在它们各自的 bundle 包中而被复制。
我知道使用Browserify可以手动忽略或排除模块,这在项目刚成立时很好-但是随着项目的发展,需要管理哪些依赖项将变得非常麻烦。
我认为similar Q&A here具有与我要询问的内容相同的本质,但是对我来说,这还不是很清楚。它还引用了gulp-browserify which has since been blacklisted。
在我的图中,我可以看到我有三个Browserify入口点,但是由于缺乏Gulp/Node/Browserify经验,这意味着我正在努力地思考如何实现自己想要的目标。
我很高兴能像以前已经尝试过的那样将它们拼凑在一起-但是项目经理垂涎三尺,所以我不得不共同制定一个临时的“解决方案”,直到我可以实现一些东西为止更自动化,更强大。
提前致谢。
编辑
从Browserify's plugin documentation看来,这可以通过使用factor-bundle来实现。但是再次由于缺乏Node/Browserify/Gulp的经验,我很难将所有部分组合在一起。
相关问题
最佳答案
找出答案,分享经验:
代码示例:
var gulp = require('gulp'),
source = require('vinyl-source-stream'),
browserify = require('browserify'),
factor = require('factor-bundle');
gulp.task('browserify', function(){
return browserify({
entries: ['blog.js', 'page.js']
})
.plugin(factor, {
// File output order must match entry order
o: ['bundle/blog.js', 'bundle/page.js']
})
.bundle({
debug: true
})
.pipe(source('common.js'))
.pipe(gulp.dest('bundle/'));
});
此输出和图表之间的主要区别在于,
common.js
文件是根据blog.js
和page.js
之间的常见依赖关系自动生成的。这在factor-bundle documentation中进行了描述。注意:
关于javascript - 使用Browserify和Gulp使用共享的公共(public)库创建单独的JavaScript包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23748841/