gpt4 book ai didi

browserify - 使用 browserify-shim 填充依赖项的依赖项

转载 作者:行者123 更新时间:2023-12-04 11:05:30 26 4
gpt4 key购买 nike

我正在尝试通过使用 browserify-shim 将某些模块从包中填充出来来重构使用 Browserify 的库。具体来说,该库使用 require("codemirror") 但我想提供一个不包含 CodeMirror 的包,而是使用通过 CDN 提供的包。

所以我的 package.json 中有 browserify-shim 配置,比如

  "browserify-shim": {
"jquery": "global:jQuery",
"codemirror": "global:CodeMirror"
}

到现在为止还挺好。 require('jquery') 和 require('codemirror') 已从 browserified 包中消失,并被预期的代码片段替换,以从窗口对象中获取 jQuery 和 CodeMirror。

该库还需要一些 CodeMirror 附加组件。例如 require('codemirror/addon/hint/show-hint.js')。没关系。我想捆绑那个附加组件。然而,在这个附加组件中有一个包含 require("../../lib/codemirror") 的 UMD 包装器。 Browserify 看到了这一点,并因此从/node_modules/codemirror/lib/codemirror.js 捆绑了 CodeMirror(我认为)。我希望它改用 codemirror shim 中定义的 window.CodeMirror ,但无法弄清楚。尝试了许多变体,包括以下内容:
  "browserify-shim": {
"jquery": "global:jQuery",
"codemirror": "global:CodeMirror",
"../../lib/codemirror": "global:CodeMirror",
"codemirror/addon/hint/show-hint.js": {
"exports":null,
"depends":["../../lib/codemirror:CodeMirror"]
}
}

那 require("../../lib/codemirror") 不会消失!我确定我错过了一些东西。

我从 Gulp 脚本运行它,但我认为这不会有任何区别。 Browserify 版本 3.38.1。 Browserify-shim 版本 3.7.0。

有任何想法吗?

最佳答案

如果添加 browserify-shim{global: true} ,它也应该应用于您的依赖项的依赖项(等等),这应该可以满足您的需求。

假设您在 Gulpfile 中使用原始 browserify,而不是:

b.transform('browserify-shim');

做:
b.transform({global: true}, 'browserify-shim');

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

关于browserify - 使用 browserify-shim 填充依赖项的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com