javascript - 当 Meteor 中的导出名称冲突时会发生什么?

标签 javascript node.js meteor package

我在 Meteor 中读到了这一点,

If your app uses the email package (and only if it uses the email package!) then your app can see Email and you can call Email.send. Most packages have only one export, but some packages might have two or three (for example, a package that provides several classes that work together).

如果您的应用程序使用两个导出名为 Email 的变量的包,会发生什么情况?您的应用程序收到哪个电子邮件? Package.a.Email/Package.b.Email 是唯一的解决方法吗?

最佳答案

这就是meteor的命名空间系统发挥作用的地方。只有两个包之一(通常是最后添加的那个)将获得全局Email变量。

唯一的解决方法是使用您提到的Package.a

如果一个包依赖于另一个包,如果在 package.js 中使用 api.use("xxx") 正确引用了相关包,那么就不会有问题

如果您使用两个带有导出的包作为包的依赖项,您将必须使用 Package.xx 命名约定(注意 Meteor 实际上在幕后使用了它,它实际上会转换您的代码,如果您不使用Package.xx

使用全局变量Email,您必须小心,因为只有一个包会获取全局变量。

关于javascript - 当 Meteor 中的导出名称冲突时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30672778/

相关文章:

javascript - Youtube iframe嵌入加载Flash播放器而不是HTML5播放器

javascript - 我该怎么做 "A Datepicker with 3 separate input one for month , day and year and validate it"?

javascript - 获取对象中数组的大小

javascript - 使用 express 和 multer 上传文件后如何下载?

javascript - 如何通过数组获取多个值并在 Google map 中显示此地点?

meteor - Mocha-web 客户端测试未使用 Velocity for Meteor 应用程序运行

javascript - 很难理解回调函数

javascript - SASS/SCSS @import 前面的 ~ 是什么意思/做什么?

node.js - Nodejs every 和 foreach 循环

node.js - Meteor的CollectionFS下载错误: write after end