私有 npm 包无法使用 `npm ci` 安装,但可以使用 `npm i` 为啥?

Posted

技术标签:

【中文标题】私有 npm 包无法使用 `npm ci` 安装,但可以使用 `npm i` 为啥?【英文标题】:Private npm package fails to install with `npm ci` , but works with `npm i` why?私有 npm 包无法使用 `npm ci` 安装,但可以使用 `npm i` 为什么? 【发布时间】:2021-02-16 19:24:50 【问题描述】:

我的package.json: "uWebSockets.js": "github:uNetworking/uWebSockets.js#v18.9.0",中有这个包

当尝试使用 npm i 在 docker 中安装此软件包时 -> 有效

但是npm ci 我得到:npm ERR! Host key verification failed

首先,想知道有什么区别。

其次,如果我能获得有关如何在 docker 文件中执行 CI 的帮助。

谢谢!!

【问题讨论】:

【参考方案1】:

有点晚了,但这里有一个解决方法,取自this github issue:

为了任何正在寻找解决方法但苦苦挣扎的人的利益 理解上面的对话,如果你正在安装一些东西 来自公共 github 存储库并想强制使用 https,这应该可以工作:

npm install git+https://<githubUsername>@github.com/<project>/<repo>.git

你使用什么 github 用户名可能并不重要,因为 每个人都可以访问公共回购。用户名的使用有资格作为 'auth' 并因此强制保留协议,如在 #2610 (comment) 中的第 2 点。

【讨论】:

以上是关于私有 npm 包无法使用 `npm ci` 安装,但可以使用 `npm i` 为啥?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用托管在 GPR 上的私有 NPM 包

从私有 gitlab 注册表安装多个 npm 包

使用来自 env 变量的令牌从私有 Github 存储库安装 NPM 包

JFrog私有注册表无法npm安装

无法在 Gitlab 上发布私有 npm 包 - E404 Not found PUT

Azure Devops:即使在设置 NPM Authenticate 之后,也无法使用 NPM 私有注册表构建映像