升级包
客户端
对于仅限客户端的包或不使用将变为异步的 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 之前的所有版本中,此属性都将为falsy
(undefined
)。在 Meteor 3.0 中,此属性将返回true
。
这意味着您可以在包中使用如下代码
js
if (Meteor.isFibersDisabled) {
// Meteor 3.0
} else {
// Meteor 2.x
}