4

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

谷歌云功能要求将包发布到 repo 以使用它,因为我们不发布编译后的代码,它可以包含本地包,但直接包含原始 TypeScript。

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

我 cd 进入 packages/common 目录。

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

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

我在 GitHub 上创建了一个具有完整 repo、包和组织权限的个人 Auth Token。

然后我登录到我的组织:

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!)
4

1 回答 1

1

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

我必须在 GitHub 上创建组织(即myorganization在您的示例中),并在该组织下创建一个与 repo 同名的 repo(即common在您的示例中),并且它有效。

于 2020-10-16T11:16:31.417 回答