版本不匹配
重要的是,您安装的所有 Remotion 包(remotion
、@remotion/player
、@remotion/cli
等)都安装了相同的版本。如果版本不同,这些包可能无法正确通信,这可能会引入微妙的错误,甚至完全破坏。
^
字符可能会让人困惑
以下 package.json
不 确保所有 Remotion 版本相同:
package.jsonjson
{"dependencies": {"remotion": "^2.6.12","@remotion/player": "^2.6.12","@remotion/gif": "^2.6.12"}}
package.jsonjson
{"dependencies": {"remotion": "^2.6.12","@remotion/player": "^2.6.12","@remotion/gif": "^2.6.12"}}
然而,以下清单确保了:
package.jsonjson
{"dependencies": {"remotion": "2.6.12","@remotion/player": "2.6.12","@remotion/gif": "2.6.12"}}
package.jsonjson
{"dependencies": {"remotion": "2.6.12","@remotion/player": "2.6.12","@remotion/gif": "2.6.12"}}
特别是如果这些包是随着时间的推移安装的,而不是一次性安装。删除 ^
字符是确保所有 Remotion 包具有相同版本的好方法。
依赖于 Remotion 的包
如果您制作了一个 Remotion 库并将其放在 npm 上,请将 Remotion 设置为 peerDependency
和 devDependency
而不是依赖项:
package.jsonjson
{"name": "my-remotion-library","peerDependencies": {"remotion": "*"},"devDependencies": {"remotion": "^2.6.11"}}
package.jsonjson
{"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
开头的包。
另请参阅: 测试预发布版本