ysf*_*ran 5 npm npm-install package-lock.json
从私有注册表安装软件包非常简单:
npm install my-package --registry https://<private-registry-url>
Run Code Online (Sandbox Code Playgroud)
这将添加一个条目到package-lock.json:
"my-package": {
"version": "1.0.0",
"resolved": "https://<private-registry-url>/<some_path>/my-package-1.0.0.tgz",
"integrity": "sha1-Pjs/y9sEp49/OC8+8eEZFdwT3BQ="
},
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利,一切都符合预期。
现在的问题是,当您想使用npm install. 这将失败并出现以下错误:
npm install my-package --registry https://<private-registry-url>
Run Code Online (Sandbox Code Playgroud)
所以它试图my-package从公共 npm 注册表 ( https://registry.npmjs.org/my-package) 中获取,但当然失败了,因为my-package它位于私有注册表中。
现在,这真的伤了我的理解package-lock.json..不应该NPM照照package-lock.json,看看那里的包是前解决?相反,它只是假设它必须在公共注册表中。
另一个有趣的事情是,一旦您--registry再次手动安装带有标志的软件包,它就会起作用:
npm install my-package --registry https://<private-registry-url> && npm i
Run Code Online (Sandbox Code Playgroud)
之后它每次都会工作,直到您升级版本my-package或切换设备。
我也尝试过npm ci命令但没有成功(同样的错误)。
那么如何从私有注册表正确安装软件包,以便可以使用npm install?
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |