npm
支持的最小 NPM 版本号是 5。
为所有项目设置全局注册中心
要为本地所有的项目设置注册中心,在任意终端窗口运行:
npm set registry http://localhost:4873/
上述代码将为当前操作系统用户设置注册中心,你可以在 ~/.npmrc
文件中看到。
为特定项目设置注册中心
在终端窗口打开项目的根目录,运行:
npm set registry http://localhost:4873/ --location project
上述命令会在项目根目录下的 .npmrc
文件设置注册中心。
或者通过指定 scope: @my-scope/auth
:
npm config set @my-scope:registry http://localhost:4873
在特定命令中使用注册中心
如果你需要单次使用,将 --registry http://localhost:4873/
添加到需要使用的命令之后。 一些例子:
npm ci --registry http://localhost:4873
npm install --registry http://localhost:4873
npm install lodash --registry http://localhost:4873
如何防止包发布到其他注册中心
如果只想将包发布到 Verdaccio 但是保留从其他注册表安装包,可以在 package.json
中配置 publishConfig
,参考 Npm官方文档中的描述。
{
"publishConfig": {
"registry": "http://localhost:4873"
}
}
创建用户
使用 npm 8 或更低版本时, adduser
或 login
都可以同时创建用户并登录。
npm adduser --registry http://localhost:4873
在 npm@9
之后的版本,这两个命令分开工作:
login
不创建用户。
npm login --registry http://localhost:4873
adduser
不执行登录操作。
npm adduser --registry http://localhost:4873
默认情况下,两个命令都依赖于 web 登录,添加 --auth-type=legacy
可以使用之前的登录方式。
故障排除
npm login
使用 npm@9 或更高版本
如果你在 npm@9.x<code> 或更高版本遇到登录问题, 请尝试使用 <code>legacy
模式(参考上面的说明)。
有关未来原生支持的进展,您可以跟踪以下issue#3413。
认证 Verdaccio 时,npm 不会保存 authToken
如果使用 npm@5.4.x
或 npm@5.5.x
, 这里有一些 关于 token 的已知问题, 请升级到 6.x
或降级到 npm@5.3.0
.
SSL 和证书
在 SSL 下没有有效的证书使用 Verdaccio 时, 必须在配置文件中定义 strict-ssl
, 否则会遇到 SSL Error: SELF_SIGNED_CERT_IN_CHAIN
错误.
从 2014 年开始,npm
不再支持 无效证书.
npm config set ca ""
npm config set strict-ssl false
在 lockfile 中混用注册中心 (npm v7+)
由于 npm 7 引入了 lockfileVersion: 2
而变得更加严格. 如果在 lockfile 中有混合不同注册表的 resolved
字段, 如下示例:
{
"name": "npm7",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"lodash": "4.17.20",
"underscore": "^1.11.0"
}
},
..... // removed for simplicity
},
"dependencies": {
"lodash": {
"version": "4.17.20",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
"integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
},
"underscore": {
"version": "1.11.0",
"resolved": "http://localhost:4873/underscore/-/underscore-1.11.0.tgz",
"integrity": "sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw=="
}
}
}
在安装时运行 npm i --registry https://registry.npmjs.org
或使用 .npmrc
均会失败.