我正在使用npm,Gulp和browserify为我的应用程序创建一个半自动构建管道。这就是我想要完成的事情:
page1.js
,page2.js
,...)common.js
。vendor.js
。我在为我的应用程序组合browserify和browserify-shim时遇到了麻烦。在我的网页中,我添加了vendor.js
,common.js
和page1.js
。当我尝试加载页面并且我的脚本尝试require('bootstrap')
时,会抛出异常:
// Part of bootstrap.js
if (typeof jQuery === 'undefined') {
throw new Error('Bootstrap\'s JavaScript requires jQuery')
}
我希望告诉browserify-shim,bootstrap依赖于jquery,它希望jquery的导出绑定到jQuery变量。我试图在我的package.json中执行此操作。
我无法准确查明出现了什么问题。我已经尝试了各种值的排列,以进入bootstrap的垫片(jquery:jQuery
,jquery:$
,jquery
)无济于事。我还尝试在browser
路径中包含和省略各种值。我还尝试使用:./node_modules/.bin/browserify -r jquery -r bootstrap > vendor.js
通过命令行构建供应商包,但是浏览器出现了同样的错误。有很多关于browserify-shim和factor-bundle的问题,但没有一个问题可以解决任何试图将两者结合起来的问题。
我创建了一个存储库来演示此问题。安装和重现的步骤在README中。 https://github.com/linkleonard/browserify-shim-factor-bundle