首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用browerify-shim正确地使用shim /主干

如何使用browerify-shim正确地使用shim /主干
EN

Stack Overflow用户
提问于 2014-06-22 16:59:07
回答 1查看 248关注 0票数 1

我正在尝试构建一个独立的JS,它使用主干/jquery。下面是一个样品回购,它代表了我要构建的库。

对于这个库,我有几个目标:

  1. 不要暴露任何球状物(妥善包装,以免漏水)
  2. 不要受任何其他包工具(如requireJS )的影响
    • 这个库可以加载到任何其他网站,我不希望与JS发生任何冲突(这是我无法控制的),比如requireJS

因此,我的理解是,我可以使用browserify-shim对这些模块进行适当的调整,这样它们就可以像预期的那样在require中使用。我非常肯定,当definesrequire封装这些模块时,shim应该解除它们,这将达到目标#2。目标#1希望通过按预期使用browserify来实现。

我似乎无法让它真正发挥作用,我不确定这是否只是我对浏览器化-shim的误解。我似乎也有同样的问题,无论我是否从命令行运行browserify:browserify src/main.js -o build/main.js还是使用gulp。

基本上,就好像browserify-shim甚至没有运行。如果打开index.html,您可以看到,我加载的需求as代码肯定会影响到我的库,因为Backbone只是一个空对象,然后需要崩溃。

您可以在回购中看到我的package.json 这里,它大致如下所示:

代码语言:javascript
复制
{
...
"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.jsbuild/main-shimmed.js。我运行的main.js没有shim,而shimmed配置有上面的配置。很明显我漏掉了什么。

EN

回答 1

Stack Overflow用户

发布于 2014-06-23 06:38:11

在这种情况下,Browserify和Browserify-shim正在工作,您的main.js正在调用正确的需求。

您遇到的问题是,您正在捆绑的库也试图连接AMD样式的配置。你的“横渡溪流”,小心戈泽。

要么获得没有AMD配置加载器的版本,要么注释掉它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24353545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档