![](/img/trans.png)
[英]How do I exclude the “require('react')” from my Browserified bundle?
[英]How do I export my browserified modules for requiring in the browser?
我有几个js模块,我在浏览器中捆绑:gulp:
gulp.task('build:js', ['clean:js'], function () {
browserify({
debug: true,
entries: paths.js.src
})
.transform('babelify', { presets: ['es2015'] })
.bundle()
.pipe(source('bundle.js'))
.pipe(buffer())
.pipe(gulp.dest(paths.js.dist));
});
它输出一个bundle.js
。 但是,当像这样捆绑时,我不能在浏览器中require
单独的模块。 我想做的,因为我不想总是启动每个模块(有些是特定于页面的)。 而不是我希望能够使用var someModule = require('some-module');
在捆绑的页面上。
现在我在文档中找不到任何关于它的内容,因为它只记录了命令行选项(而不是js api)。 这个答案表明一个模块可以被需要并从gulp中暴露出来,但这会暴露我的整个bundle,而不是它所组成的模块。
一个解决方案是将所有模块分开捆绑,排除依赖关系(因此它们不会在bundle中重复),然后连接它。 但这似乎不是一个可行的解决方案,因为:
那么我该如何解决这个问题呢? 如何在浏览器中单独组成我的js组成的包,供客户端使用?
所以我最终做的是其他事情。 我所要求的是与浏览器工作的方式相反,即使它是可能的。 也许最终当HTTP2导入和js模块可以在所有主流浏览器中使用时,这将更容易。
现在,我只有一个global
包,用于在每个页面上运行的脚本,包括我的所有第三方库。 然后对于每个页面,我都有一个单独的入口点,其中包含所需的本地模块。 这是迄今为止最易维护的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.