我有一个项目,其中包含$PROJECT/.npmrc一个身份验证令牌,该令牌授予对该项目所需的 proviat 存储库的只读访问权限:
$ cat .npmrc
//registry.npmjs.org/:_authToken={read-only-token}
Run Code Online (Sandbox Code Playgroud)
如何使用我的用户令牌覆盖该令牌以便我可以发布包?
$ cat ~/.npmrc
//registry.npmjs.org/:_authToken={my-token}
Run Code Online (Sandbox Code Playgroud)
文档指出配置文件将按“优先级顺序”加载,其中项目配置具有最高优先级,并且似乎没有任何方法可以覆盖它:
$ cd my-project/
$ npm whoami
project-readonly-user
$ cd ~
$ npm whoami
wolever
Run Code Online (Sandbox Code Playgroud)
我知道可以定义一个NPM_TOKEN环境变量:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
Run Code Online (Sandbox Code Playgroud)
但这意味着项目的每个用户都需要定义NPM_TOKEN环境变量,这是不可取的(即,因为这意味着每个用户(包括只读用户)都需要定义环境NPM_TOKEN变量才能使用该项目) 。
CLI 参数优先于本地 .npmrc 配置,因此您可以通过以下方式覆盖它:
npm publish --registry=https://registry.npmjs.org/:_authToken={my-token}
Run Code Online (Sandbox Code Playgroud)
您可以添加一个用于发布的 npm 脚本,该脚本依赖于带有私有令牌的环境变量:
{
"scripts": {
"publish": "npm publish --registry=https://registry.npmjs.org/:_authToken=${NPM_PUBLISH_TOKEN}"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2228 次 |
| 最近记录: |