YogaKit 2.0.1

YogaKit 2.0.1

测试已测试
编程语言语言 Obj-CObjective C
许可证 未声明
发布最新发布2023年11月

Dustin ShahidehpourFacebook, Inc.Pritesh NandgaonkarLorenzo Blasa 维护。



YogaKit 2.0.1

  • Meta 开源

Yoga CocoaPods npm bintray NuGet

构建

Yoga 使用 buck 构建。在向 Yoga 贡献之前,请确保已安装 buck。Yoga 的主要实现使用 C++,与支持的语言和框架绑定。当对 Yoga 进行更改时,请确保在适用的情况下也将更改传播到这些绑定。

测试

在测试中,我们依赖于作为一个子模块的gtest。在克隆Yoga之后,运行git submodule init,然后运行git submodule update

对您所做的任何更改,都应确保所有测试都能通过。如果您修改或增加了库的内容,请也为该更改添加测试,以确保我们在未来不会破坏任何东西。测试位于tests目录中。通过执行buck test //:yoga来运行测试。

您不必手动编写测试来确保与Flexbox的Web实现兼容,而是可以运行gentest/gentest.rb生成一个测试。您可以将您想验证在Yoga中的HTML写入gentest/fixtures文件夹,例如以下所示。

<div id="my_test" style="width: 100px; height: 100px; align-items: center;">
  <div style="width: 50px; height: 50px;"></div>
</div>

运行gentest/gentest.rb生成测试代码,然后重新运行buck test //:yoga以验证行为。对于输入HTML中的每个根div将生成一个测试用例。

您可能需要安装最新的watir-webdriver gem(gem install watir-webdriver)和ChromeDriver来运行gentest/gentest.rb Ruby脚本。

.NET

yet, you might need to set up the .NET testing environment. We have a script to launch the C# test on macOS, csharp/tests/Facebook.Yoga/test_macos.sh.

Benchmarks

Benchmarks位于benchmark/YGBenchmark.c中,可以通过运行buck run //benchmark:benchmark来执行。如果您认为您的更改已经影响了性能,请在更改前后运行该命令以验证没有回归。这些基准在CI中的每个提交都会运行。

JavaScript

通过NPM安装

npm install yoga-layout

默认情况下,这会安装库并尝试为所有平台(node、browser asm和standalone webpack)构建。如果您尚未安装所需的平台开发工具,可能会收到错误。要预置您想要构建的平台,您可以首先设置一个.npmrc属性。

npm config set yoga-layout:platform standalone

现在,在安装时将仅运行standalone webpack构建。

构建平台

名称 描述
全部(默认) 构建所有这些平台。
浏览器 构建 asm js 浏览器版本。
Node.js 构建 Node.js 版本。
独立 运行 webpack。
不执行任何操作。您可以使用预包装的库。