首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用browserify-shim消除依赖项的依赖关系

使用browserify-shim消除依赖项的依赖关系
EN

Stack Overflow用户
提问于 2014-09-24 19:27:11
回答 2查看 2.7K关注 0票数 7

我试图重构一个使用Browserify的库,通过使用browserify-shim将某些模块从包中擦除。具体来说,库使用require(" CodeMirror "),但是我想提供一个包,它不包括CodeMirror,而是使用通过CDN提供的包。

所以我在我的package.json中有了浏览器-shim

代码语言:javascript
复制
  "browserify-shim": {
    "jquery": "global:jQuery",
    "codemirror": "global:CodeMirror"
  }

到目前一切尚好。require(' jQuery ')和require(' CodeMirror ')已经从浏览器序列化的包中消失了,取而代之的是期望的代码片段来从窗口对象中获取jQuery和CodeMirror。

库还需要一些CodeMirror加载项.例如,require('codemirror/addon/hint/show-hint.js').这很好。我要把那个附加的东西打包好。但是,在这个插件中有一个UMD包装器,其中包含了require("../../lib/codemirror")。Browserify看到了这一点,并因此将CodeMirror捆绑在/node/codemirror/lib/codemirror.js中(我认为)。我希望这样做可以使用codemirror中定义的window.CodeMirror,但无法解决它。已经尝试了许多不同的方法,包括:

代码语言:javascript
复制
  "browserify-shim": {
    "jquery": "global:jQuery",
    "codemirror": "global:CodeMirror",
    "../../lib/codemirror": "global:CodeMirror",
    "codemirror/addon/hint/show-hint.js": { 
      "exports":null,
      "depends":["../../lib/codemirror:CodeMirror"]
    }
  }

这个要求(“./../lib/codemirror”)不会消失!我肯定我漏掉了什么。

我是从一个Gulp脚本中运行的,但我不认为这会有任何不同。浏览3.38.1版。Browserify-shim版本3.7.0。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-27 20:29:32

如果您使用browserify-shim添加了{global: true},那么它也应该应用于依赖项的依赖项(等等),希望这样做可以满足您的需要。

假设您在Gulpfile中使用原始的浏览器化,而不是:

代码语言:javascript
复制
b.transform('browserify-shim');

做:

代码语言:javascript
复制
b.transform({global: true}, 'browserify-shim');

如果您使用的是gulp-browserify,我不确定是否有任何方法来指定全局转换。

票数 12
EN

Stack Overflow用户

发布于 2016-03-16 13:46:28

代码语言:javascript
复制
{global: true}

为我工作..。为什么这不是默认的呢?

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

https://stackoverflow.com/questions/26024912

复制
相关文章

相似问题

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