在 Browserify 中将模块公开为全局变量
Posted
技术标签:
【中文标题】在 Browserify 中将模块公开为全局变量【英文标题】:Expose module as global variable in Browserify 【发布时间】:2016-04-14 12:36:57 【问题描述】:我有 third-party-module-b
使用 third_party_module_a
全局并且有
require('third-party-module-a');
在入口点。
问题是 third-party-module-a
遵循 UMD 模式,如果检测到模块化环境,则未定义 third_party_module_a
全局。
我正在寻找 Browserify 转换来解决这个问题。
转换应该基本上替换require
(如Webpack expose-loader):
(typeof ... ? window : global).third_party_module_a = require('third-party-module-a');
或将require
附加到每个模块的顶部(如Webpack ProvidePlugin):
var third_party_module_a = require('third-party-module-a');
有这样的 Browserify 转换吗?
请注意,exposify transform 的作用正好相反,而且在这里似乎没有用,尽管有这个名字。
【问题讨论】:
【参考方案1】:不确定你是否看过这个,但他们的 github 上有一个可用的转换列表。
https://github.com/substack/node-browserify/wiki/list-of-transforms
不确定具体是哪一个,但如果您没有看过它,这可能会有所帮助
【讨论】:
感谢您的建议,但这并不是问题的真正答案。当然,在提出问题之前我已经浏览了此列表两次,但一无所获。以上是关于在 Browserify 中将模块公开为全局变量的主要内容,如果未能解决你的问题,请参考以下文章
合并 JS 流时保留源映射(将 lib 依赖项与 browserify 捆绑包连接)
如何在 crate 中将 Rust 项目设为公开,但在其外部设为私有?