angular - 纱线不能与 nexus 3 npm 代理存储库一起使用
问题描述
我已经设置了一个 Nexus 3 管理器来托管私有 npm 包。nexus 包含三个 npm 存储库,一个hosted
、一个proxy
和一个group
用于组合其他两个。如果已npm bearer realm
激活,并且我正在使用具有管理员角色的 nexus 用户进行测试。
我现在已经通过 angular cli 设置了一个简单的 angular 库以进行发布。在角度项目中,我配置.npmrc
如下:
registry=https://urlToMyNexus/repo/npm-all/
_authToken=NpmToken.XXXX
现在我想通过yarn install
. 和in home home dictionary 是空的.npmrc
。.yarnrc
预配置的package.json
外观如下所示:
{
"name": "test-libraries",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "~9.1.1",
"@angular/common": "~9.1.1",
"@angular/compiler": "~9.1.1",
"@angular/core": "~9.1.1",
"@angular/forms": "~9.1.1",
"@angular/platform-browser": "~9.1.1",
"@angular/platform-browser-dynamic": "~9.1.1",
"@angular/router": "~9.1.1",
"rxjs": "~6.5.4",
"tslib": "^1.10.0",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.901.1",
"@angular-devkit/build-ng-packagr": "~0.901.1",
"@angular/cli": "~9.1.1",
"@angular/compiler-cli": "~9.1.1",
"@angular/language-service": "~9.1.1",
"@types/jasmine": "~3.5.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"codelyzer": "^5.1.2",
"jasmine-core": "~3.5.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.4.1",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~2.1.0",
"karma-jasmine": "~3.0.1",
"karma-jasmine-html-reporter": "^1.4.2",
"ng-packagr": "^9.0.0",
"protractor": "~5.4.3"
"ts-node": "~8.3.0",
"tslint": "~6.1.0",
"typescript": "~3.8.3"
}
}
该yarn install
命令现在能够在 中安装所有@angular
软件包dependencies
,但在rxjs
. 它给出了错误error Couldn't find package "rxjs" on the "npm" registry.
如果我尝试npm install
使用相同的配置,则所有软件包都已正确安装在 nexus 存储库上。
有没有人有同样的问题?
解决方案
这周我遇到了同样的问题。当我使用纱线时,它失败了,error Couldn't find package "@egjs/hammerjs" on the "npm" registry.
在 unistalling node_modules 和 yarn.lock 之后它可以显示另一个包名,但错误是一样的。但是,如果我npm install
改用纱线 - 安装效果很好。就我而言,这不是一个选择,因为项目已经开发了一年多,我不想因此更换包管理器。如果我能找到适用于纱线的解决方案,我将进一步调查并编辑这篇文章
更新: 对我来说,以下步骤确实解决了这个问题:
- 删除 .yarnrc 和 .npmrc 文件
- 运行命令
yarn config delete registry
从纱线内部配置中删除当前注册表 url - 使用以下内容创建 .npmrc
registry=https://nexus-registry-url.com
always-auth=true
_auth=<base64-token-value>
在此步骤yarn install
适用于我的本地机器和 docker 中的项目 CI/CD 之后。
推荐阅读
- javascript - 如何从数组localStorage中删除对象中的项目
- java - 计算最长连败的总损失
- javascript - Handlebars 点符号路径表达式返回空白值,但正常(非路径)表达式有效
- python - 通过 API (Python) 将多个视频添加到 youtube-playlist
- angular - Angular 如何在继续下一行之前等待方法完成
- c - 在C中返回字符串数组的函数
- android - 为什么 Double 从我的数据库返回错误的数据?
- python - 如何向我的 Django 自定义用户模型的密码添加安全要求?
- arduino - ESP32 同时使用 Async Web 服务器和 Now 协议?
- c++ - 链接目标文件时的 NVCC 多个定义