h5 🚀 - C# 到 JavaScript 编译器
H5 是原始 Bridge C# 到 JavaScript 编译器的现代分支,更新以支持使用 .NET 8.0 进行编译器的多平台开发,以及使用 .NET Standard 2.1 进行 H5 项目开发,同时放弃了对旧功能和依赖项的支持。
H5 正在积极开发中,旨在为 C# Web 开发人员提供更加集成和快速的开发体验。
快速开始 ⚡
H5 项目基于 netstandard2.1,编译器基于 net8.0,并移除了来自原始 Bridge 源代码的旧依赖项。
要开始使用,你可以使用以下项目模板(将 h5.Target/* 替换为 h5.target 的最新版本)。
<Project Sdk="h5.Target/*">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="h5" Version="*" />
<PackageReference Include="h5.Core" Version="*" />
</ItemGroup>
</Project>
上面的 SDK 目标(<Project Sdk="h5.Target/*">
)将自动安装(并更新)编译器作为 dotnet global tool
。
你也可以手动安装:
dotnet tool update --global h5-compiler
dotnet new --install h5.Template
并使用以下命令创建新项目:
dotnet new h5
示例
开始使用 h5 的最简单方法是查看此仓库中的一些示例。
重大变更 💥
这个分支作为现代化努力的一部分引入了一系列重大变更:
- 项目必须明确针对
netstandard2.1
。 - 放弃对旧版 .csproj 格式的支持(仅支持 SDK 风格的项目)
- 放弃对旧版(和未使用的)命令行参数的支持(查看 h5 -h 以了解支持的参数)
- 编译器作为
dotnet global
工具分发,并有自己的版本控制和构建时自动更新(可以通过在项目文件中设置<UpdateH5>false</UpdateH5>
来禁用)。 - 不支持 Retyped 包(因为这些包由 Bridge 作者维护,无法单独构建或在没有 Bridge NuGet 包的情况下使用)。
- 已从 h5.json 配置文件中移除日志记录和报告选项。
- 托管编译器进程(以加快编译速度并避免重新加载不经常变化的程序集,如 NuGet 包)。
更新说明 📑
为避免与原始 Bridge 生态系统发生任何冲突,所有包都已重命名。升级时,你可以使用以下映射:
- H5(替代基础 Bridge 库)
- H5.Core(替代 Retyped.Core、Retyped.es5 和 Retyped.dom)
- H5.Newtonsoft.Json(替代 Bridge.Newtonsoft.Json)
- H5.WebGL2(替代 Retyped.WebGl2)
未来可能会添加其他包,因为我们正在试验这个分支,但我们不打算在这里提供任何类型的 Retyped 替代品。 如果你缺少任何特定的 Retyped 包,请开一个 issue,我可以考虑从 Retyped 包派生并发布它。