【问题标题】:How do you publish and install a private npm package to GitHub packages as an organisation?作为一个组织,您如何将私有 npm 包发布和安装到 GitHub 包?
【发布时间】:2020-08-19 21:33:19
【问题描述】:

我们有一个带有名为“@myorganization/common”的共享包的 monorepo,应用程序和 Google 云功能都使用它。

Google 云功能需要将包发布到存储库才能使用它,因为我们不发布编译后的代码,它可以包含本地包,但直接包含原始 TypeScript。

我找到了一些教程,但没有找到结合私有包和组织的用例。

我 cd 进入 packages/common 目录。

我在我的 packages.json 中添加了以下几行:

"publishConfig": { "registry": "https://npm.pkg.github.com/" },
"repository": {
  "url": "git@github.myorganization/common.git"
},

我在 GitHub 上创建了一个个人 Auth Token,拥有完整的 repo、packages 和 org 权限。

然后我登录到我的组织:

npm login --registry=https://npm.pkg.github.com --scope=@myorganization

然后我打:

npm publish

我收到以下错误:

npm ERR! code EPRIVATE
npm ERR! This package has been marked as private
npm ERR! Remove the 'private' field from the package.json to publish it.

我希望这个包仅供组织成员使用。当 React Native 使用它时,它既可以用作 lerna monorepo 中的本地私有包,也可以通过从 GitHub 包中获取来由 Google Cloud Function 使用。然而,其他人将无法访问它。

这是可能的吗?

问候

编辑:

我尝试更新 packages.json,删除 private=true 并尝试确保将其发布到我的私人组织:

"publishConfig": {
    "registry": "https://npm.pkg.github.com/:_authToken=xxxx --scope=@myorganization"
  },

我现在得到错误:

npm ERR! code E404
npm ERR! 404 Not Found - PUT https://npm.pkg.github.com/@myorganization%2fcommon - The expected resource was not found.
npm ERR! 404
npm ERR! 404  '@myorganization/common@0.0.7' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)

【问题讨论】:

    标签: npm google-cloud-functions lerna monorepo github-package-registry


    【解决方案1】:

    我面临着完全相同的问题。这对我有用。

    我必须在 GitHub 上创建 那个 组织(即您的示例中的 myorganization)和一个具有相同名称的存储库(即您的示例中的 common)作为该组织下的存储库并且它有效.

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 2019-04-03
      • 2020-04-24
      • 2021-12-15
      • 2017-04-13
      • 2020-03-05
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多