我有一个节点模块,我试图通过 browserify 分发。该项目有许多功能,这些功能通常与根对象相关联,例如 jQuery 的 $、下划线的 _ 或 Leaflet 的 L。我的 index.js 看起来像这样:
module.exports = {
f1: require('./lib/f1'),
f2: require('./lib/f2')
}
这在 node.js 中运行良好,因为我可以这样做:
var x = require('x')
x.f1()
x.f2()
问题是,当我使用 browserify 时,它会消除我的根对象并将所有内容展平。在浏览器中,会发生这种情况
<script src='x.js'>
...
f1() // works fine
f2() // works fine
x.f1() // x undefined
x.f2() // x undefined
这就是我使用 browserify 的方式(基本上是默认值):
browserify index.js > x.js
有谁知道一种方法让 browserify 不把所有东西都展平,而只是暴露根对象?