Skip to main content

版本不匹配

重要的是,您安装的所有 Remotion 包(remotion@remotion/player@remotion/cli 等)都安装了相同的版本。如果版本不同,这些包可能无法正确通信,这可能会引入微妙的错误,甚至完全破坏。

^ 字符可能会让人困惑

以下 package.json 确保所有 Remotion 版本相同:

package.json
json
{
"dependencies": {
"remotion": "^2.6.12",
"@remotion/player": "^2.6.12",
"@remotion/gif": "^2.6.12"
}
}
package.json
json
{
"dependencies": {
"remotion": "^2.6.12",
"@remotion/player": "^2.6.12",
"@remotion/gif": "^2.6.12"
}
}

然而,以下清单确保了:

package.json
json
{
"dependencies": {
"remotion": "2.6.12",
"@remotion/player": "2.6.12",
"@remotion/gif": "2.6.12"
}
}
package.json
json
{
"dependencies": {
"remotion": "2.6.12",
"@remotion/player": "2.6.12",
"@remotion/gif": "2.6.12"
}
}

特别是如果这些包是随着时间的推移安装的,而不是一次性安装。删除 ^ 字符是确保所有 Remotion 包具有相同版本的好方法。

依赖于 Remotion 的包

如果您制作了一个 Remotion 库并将其放在 npm 上,请将 Remotion 设置为 peerDependencydevDependency 而不是依赖项:

package.json
json
{
"name": "my-remotion-library",
"peerDependencies": {
"remotion": "*"
},
"devDependencies": {
"remotion": "^2.6.11"
}
}
package.json
json
{
"name": "my-remotion-library",
"peerDependencies": {
"remotion": "*"
},
"devDependencies": {
"remotion": "^2.6.11"
}
}

这将确保当您将 my-remotion-library 安装到您的 Remotion 项目中时,不会引入 Remotion 的重复版本:

json
{
"dependencies": {
// No version mismatch will be introduced because `remotion`
// is not a direct dependency of `my-remotion-library`
"remotion": "2.7.0",
"my-remotion-library": "1.0.0"
}
}
json
{
"dependencies": {
// No version mismatch will be introduced because `remotion`
// is not a direct dependency of `my-remotion-library`
"remotion": "2.7.0",
"my-remotion-library": "1.0.0"
}
}

检查已安装的版本

仅仅因为 package.json 中的版本是 ^2.6.11 并不意味着安装了版本 2.6.11。使用以下命令:

bash
npx remotion versions
bash
npx remotion versions

查看您的项目包含的包和版本。

测试预发布版本

如果我们给您提供了一个 Remotion 的预发布版本进行测试,同样的原则适用,您不应该只升级受影响的包,而是升级所有包,包括 remotion 和以 @remotion 开头的包。

另请参阅: 测试预发布版本