跳至内容

升级包

客户端

对于仅限客户端的包或不使用将变为异步的 Meteor 包或已使用async & await 模式的包。

迁移将如下所示

js
// in you package.js
Package.onUse((api) => {
  api.versionsFrom(['1.10', '2.3', '3.0']);
  //                               ^^^^^^^ for testing your package with meteor 3.0

  api.versionsFrom(['1.10', '2.3', '3.0']);
  //                              ^^^^^^^ for meteor 3.0
});

然后,您可以发布您的包并使用 Meteor 3.0 测试它,方法是运行meteor publish --release=3.0.3

不使用发生重大更改的 Meteor 包的包的更改

与仅限客户端的包类似,如果您的包未使用发生重大更改的 Meteor 包,则可以通过将以下行添加到您的package.js中来更新您的包以使其与 Meteor 3.0 兼容

js
// in you package.js
Package.onUse((api) => {
  api.versionsFrom(['1.10', '2.3', '3.0']);
  //                               ^^^^^^^ for testing your package with meteor 3.0

  api.versionsFrom(['1.10', '2.3', '3.0']);
  //                     ^^^^^^^ for meteor 3.0
});

例如,我们有mdg:seo,我们只需要添加上面的行即可使其与 Meteor 3.0 兼容。您可以查看提交

在 Meteor 3.0 中测试包

众所周知,某些正在测试 Beta 更改的包在使用其版本中的标签时(例如:version: '2.0.0-beta300.6',)无法正确安装,以确保您获得正确的版本,您可以运行meteor add <package>@<version-tag>来安装具有正确版本的包,而不是meteor add <package>

服务器

如果您的包中使用了将变为异步的 Meteor 包,则需要迁移您的包以使用async & await 模式。

有关具体示例,您可以查看一些正在迁移到 Meteor 3.0 的包的示例

您可以按照更深入的指南了解如何迁移您的包以使其与 Meteor 3.0 兼容此处

保持与 Meteor 2.x 的兼容性

您可以使用Meteor.isFibersDisabled 属性来检查当前 Meteor 版本是否使用 Fibers。在 Meteor 3.0 之前的所有版本中,此属性都将为falsyundefined)。在 Meteor 3.0 中,此属性将返回true

这意味着您可以在包中使用如下代码

js

if (Meteor.isFibersDisabled) {
  // Meteor 3.0
} else {
  // Meteor 2.x
}