GitHub 今年新发布的功能有很多,有 Actions、Sponsor 和 Package 等等。
昨天我不小心踩了一下 GitHub package 大水坑,折腾了一下午。
首先,我的结论是:
- GitHub package 不是开箱即用的
- 第三方 CI 尚未完全支持,如 Netlify
- GitHub package 的优势在于支持不同包管理系统
1. GitHub package 不是开箱即用的
为什么这么说呢?因为我认为 npm 是开箱即用的。 回想一下我们使用 npm 的过程。
- 首先,安装 npm
- 执行命令
这就是么简单,不要手动配置(使用国内镜像除外)。
那么如何使用 GitHub package 呢?
1, 首先你要注册试用 package,因为它还是 beta 版本。
2. 你必须有一个 personal access token(有 read:packages and write:package 权限)
3. 修改 .npmrc
//npm.pkg.github.com/:_authToken=PERSONAL-ACCESS-TOKEN
registry=https://npm.pkg.github.com/OWNER
4. package.json 中 name 必须带有 @github_username 前缀,形如 @thaddeusjiang/typography-theme-tsubaki
5. 发布
npm publish
6. 去仓库的 package 页面编辑说明文件
2. 第三方 CI 尚未完全支持,如 Netlify
如第一步所写,使用 git package 之前需要修改 .npmrc,所以我们必须手动修改第三方 CI 的 .npmrc。 否则会出现类似错误
为了其它正常使用你的 package,你不得不同时发布到 npm,并写一个 https://github.com/ThaddeusJiang/typography-theme-tsubaki/issues/3 去解释为什么灰安装出错。
3. GitHub package 的优势在于支持不同包管理系统
正如 GitHub package 主页上所写,GitHub package 支持 npm、Docker、Maven、NuGet、RubyGems 等等包管理系统,低于对开源社区热情不高,且技术栈复杂的公司来说,GitHub package 还是一种可以尝试的解决方案。
综上所述,我建议个人项目暂时还是不要折腾 GitHub package 比较好。
refs: