@napi-rs/package-template
使用 unpi-rs 编写节点包的模板项目 .
使用量
- 点击 使用此模板。 。 。 .
- 克隆 你的项目.
- 运行
yarn install以安装依赖. - 运行
yarn napi rename -n [@your-scope/package-name] -b [binary-name]命令在工程文件夹下重命名您的软件包.
安装此测试软件包
yarn add @napi-rs/package-template
能力
构建
之后 yarn build/npm run build 命令,您可以看到 package-template.[darwin|win32|linux].node 在工程根中存档。 这是土生土长的 缩写。 。 。 .
测试
与 阿瓦( ava )运行 yarn test/npm run test 测试本地加通。 如果您愿意,也可以切换到另一个测试框架.
中情局
通过 GitHub 动作,每个承诺和拉动请求将自动构建和测试 [node@20, (中文(简体) ), @node22[macOS, (中文(简体) ), Linux, (中文(简体) ), Windows矩阵。 你永远不会害怕这些平台上的土生土长的人.
释放
旧时放出本地包装非常困难. 原生软件包可能要求开发者使用它安装 build toolchain 喜欢 gcc/llvm, (中文(简体) ), node-gyp 或更多东西.
与 GitHub actions,我们可以很容易的预建 binary 主要平台。 还有 N-API我们不应该害怕 ABI 兼容性。 。 。 .
另一个问题是如何交付预建 binary 给用户。 正在下载中 postinstall 脚本是大多数软件包现在这样做的一种常见方式. 这个解决方案的问题是,它引入了许多其他软件包来下载尚未被使用的二进制 runtime codes。另一个问题是一些用户可能不容易从中下载二进制 GitHub/CDN (但在大多数情况下,他们都有国家预防机制的私人镜像).
在这个包裹中,我们选择更好的方法来解决这个问题. 我们释放不同的 npm packages 用于不同的平台。 加上来 optionalDependencies 释放前 Major 软件包到 npm.
NPM 将选择从哪个本地软件包下载 registry 自动。 你看见了 无 细节目录 。 你还可以跑 yarn add @napi-rs/package-template 看它是如何工作的.
制定要求
- 安装最新的
Rust - 安装
Node.js@10+* 表示完全支持Node-API - 安装
[email protected]
本地测试
- 线条
- 线条构建
- 纱线测试
你会看到:
$ ava --verbose
✔ sync function from native code
✔ sleep function from native code (201ms)
─
2 tests passed
✨ Done in 1.12s.
发行软件包
确保您设置您的 国家防范机制 TOKEN 输入 GitHub 项目设置.
单位 Settings -> Secrets,添加 国家防范机制 TOKEN 进入它.
想要发布软件包时 :
npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | from-git]
git push
GitHub 动作会为你做剩下的工作.