2019-11-08 踩了一下 GitHub package 大水坑


GitHub 今年新发布的功能有很多,有 Actions、Sponsor 和 Package 等等。

昨天我不小心踩了一下 GitHub package 大水坑,折腾了一下午。

首先,我的结论是:

  1. GitHub package 不是开箱即用的
  2. 第三方 CI 尚未完全支持,如 Netlify
  3. GitHub package 的优势在于支持不同包管理系统

1. GitHub package 不是开箱即用的

为什么这么说呢?因为我认为 npm 是开箱即用的。 回想一下我们使用 npm 的过程。

  1. 首先,安装 npm
  2. 执行命令

这就是么简单,不要手动配置(使用国内镜像除外)。

那么如何使用 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: