我正在尝试构建一个独立的JS,它使用主干/jquery。下面是一个样品回购,它代表了我要构建的库。
对于这个库,我有几个目标:
因此,我的理解是,我可以使用browserify-shim对这些模块进行适当的调整,这样它们就可以像预期的那样在require中使用。我非常肯定,当defines和require封装这些模块时,shim应该解除它们,这将达到目标#2。目标#1希望通过按预期使用browserify来实现。
我似乎无法让它真正发挥作用,我不确定这是否只是我对浏览器化-shim的误解。我似乎也有同样的问题,无论我是否从命令行运行browserify:browserify src/main.js -o build/main.js还是使用gulp。
基本上,就好像browserify-shim甚至没有运行。如果打开index.html,您可以看到,我加载的需求as代码肯定会影响到我的库,因为Backbone只是一个空对象,然后需要崩溃。
您可以在回购中看到我的package.json 这里,它大致如下所示:
{
...
"browserify-shim": {
"./node_modules/jquery/dist/jquery.js": "$",
"./node_modules/underscore.js": "_",
"./node_modules/backbone.js": {
"exports": "Backbone",
"depends": [
"./node_modules/underscore.js",
"./node_modules/jquery/dist/jquery.js"
]
}
},
"devDependencies": {
"browserify": "^4.1.11",
"browserify-shim": "^3.6.0",
"gulp": "^3.8.1",
"vinyl-source-stream": "^0.1.1"
},
"dependencies": {
"backbone": "^1.1.2",
"jquery": "^1.11.0",
"underscore": "^1.6.0"
}
}我不知道我在这里错过了什么,但我没有运气。我想知道是否有人能帮助或者至少证实我试图用browserify-shim实现的是正确的和可能的。
谢谢。
编辑
为了说明它绝对不是在美化模块,我创建了一个完全相同的build/main.js和build/main-shimmed.js。我运行的main.js没有shim,而shimmed配置有上面的配置。很明显我漏掉了什么。
发布于 2014-06-23 06:38:11
在这种情况下,Browserify和Browserify-shim正在工作,您的main.js正在调用正确的需求。
您遇到的问题是,您正在捆绑的库也试图连接AMD样式的配置。你的“横渡溪流”,小心戈泽。
要么获得没有AMD配置加载器的版本,要么注释掉它们。
https://stackoverflow.com/questions/24353545
复制相似问题