您如何作为组织将私有npm软件包发布并安装到GitHub软件包中?

问题描述

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

Google云功能要求将程序包发布到仓库才能使用,因为我们不发布编译后的代码,该代码可以包括本地程序包,但可以直接包含原始TypeScript。

我找到了服务器教程,但没有结合私有软件包和组织的用例。

我进入packages / common目录。

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

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

我在GitHub上创建了具有完整存储库,软件包和组织权限的个人Auth令牌。

然后我登录到我的组织:

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内的本地私有包,又应被Google Cloud Function通过从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!)

解决方法

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...