Skip to main content

贡献到 Remotion

问题和各种拉取请求都受欢迎!

对于更大的项目,请与 Jonny Burger 协调(jonny@remotion.devDiscord@jonnyburger),以确保您的更改被合并。

请注意,由于公司在使用 Remotion 时我们会收费,这是一个商业项目
通过发送拉取请求,您同意我们可以在商业环境中使用您的代码更改。

此外,请注意您不能重新分发此项目。请查看 LICENSE.md 以了解允许的内容和不允许的内容。

此项目遵守贡献者行为准则。参与此项目即表示您同意遵守其条款。

设置

Remotion 使用 pnpm v8.10.2 作为此存储库中的开发包管理器。我们建议使用 Corepack,这样您就可以获得与我们相同版本的 pnpm。

sh
corepack enable
sh
corepack enable

如果您没有 corepack,请手动安装 pnpm@8.10.2

sh
npm i -g pnpm@8.10.2
sh
npm i -g pnpm@8.10.2

必要时加上 sudo 前缀。
版本必须是 8.10.2

我们使用 Bun 来加速构建的某些部分。
在您的系统上至少安装 Bun 1.1.7 - 请参阅 https://bun.sh/ 以获取说明。

克隆 Remotion 存储库:

sh
git clone --depth=1 https://github.com/remotion-dev/remotion.git && cd remotion
sh
git clone --depth=1 https://github.com/remotion-dev/remotion.git && cd remotion
note

Remotion 的完整 Git 历史很大。为节省时间和磁盘空间,我们建议添加 --depth=1 以仅克隆最近的 main 分支。

安装所有依赖项:

sh
pnpm i
sh
pnpm i

首次构建项目:

sh
pnpm build
sh
pnpm build

每当文件更改时重新构建:

sh
pnpm watch
sh
pnpm watch

您可以开始进行更改!

测试您的更改

您可以使用以下命令启动 Testbed:

sh
cd packages/example
pnpm start
sh
cd packages/example
pnpm start

您可以使用以下命令渲染测试视频:

sh
cd packages/example
pnpm render
sh
cd packages/example
pnpm render

您可以使用以下命令运行测试:

sh
pnpm test
sh
pnpm test

在子包中运行测试以运行该包的测试,或在根目录中运行以运行所有测试。

运行 @remotion/player 测试平台

您可以通过启动 Player 测试平台来测试对 @remotion/player 的更改:

sh
cd packages/player-example
pnpm start
sh
cd packages/player-example
pnpm start

有关测试的信息,请参阅 TESTING.md。欢迎各种问题和拉取请求!

运行文档

您可以使用以下命令运行驱动我们文档的 Docusaurus 服务器:

sh
cd packages/docs
pnpm start
sh
cd packages/docs
pnpm start

运行 CLI

您可以通过转到 packages/examples 目录并使用 pnpm exec 来执行 CLI 来测试对 CLI 的更改:

sh
cd packages/examples
# Example - Get available compositions
pnpm exec remotion compositions
# Example - Render command
pnpm exec remotion render ten-frame-tester --output ../../out/video.mp4
sh
cd packages/examples
# Example - Get available compositions
pnpm exec remotion compositions
# Example - Render command
pnpm exec remotion render ten-frame-tester --output ../../out/video.mp4

故障排除

如果您的 pnpm build 抛出错误,通常是由于缓存问题。您可以通过运行以下命令解决许多这些错误:

ts
pnpm run clean
ts
pnpm run clean

在清理文件时,请确保先终止任何 pnpm watch 命令,因为这些命令可能会在您清理文件时重新生成文件!

开发 Rust 部分

要开发 Remotion 的 Rust 部分,请参阅 此处

另请参阅