纱线无法与 Nexus 3 npm 代理存储库一起使用

Ka.*_*I.Z 6 nexus npm nexus3 yarnpkg angular

我已经设置了 Nexus 3 Manager 来托管私有 npm 包。Nexus 包含三个 npm 存储库,一个hosted、一个proxy和一个group用于组合另外两个。如果npm bearer realm已激活,我正在使用具有管理员角色的 Nexus 用户进行测试。

我现在已经通过 Angular cli 设置了一个简单的 Angular 库用于发布。在角度项目中,我配置.npmrc如下:

registry=https://urlToMyNexus/repo/npm-all/
_authToken=NpmToken.XXXX
Run Code Online (Sandbox Code Playgroud)

现在我想通过 来安装 nexus 中设置组存储库上的所有软件包yarn install。和.npmrcin .yarnrchome 家庭词典为空。

预配置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"
  }
}

Run Code Online (Sandbox Code Playgroud)

yarn install命令现在可以安装@angular中的所有软件包dependencies,但在 中失败rxjs。它给出了错误error Couldn't find package "rxjs" on the "npm" registry.

如果我尝试npm install使用相同的配置,所有软件包都会在 Nexus 存储库上正确安装。

有人遇到同样的问题吗?

WaR*_*R1o 7

这周我遇到了同样的问题。当我使用yarn时,它会失败,并error Couldn't find package "@egjs/hammerjs" on the "npm" registry.在卸载node_modules和yarn.lock后,它可以显示另一个包名称,但错误是相同的。但是,如果我使用npm install纱线 - 安装工作正常。就我而言,这不是一个选择,因为项目已经开发了一年多,我不想因此而更换包管理器。如果我能找到适用于纱线的解决方案,我将进一步调查并编辑这篇文章

更新: 对我来说,以下步骤确实解决了这个问题:

  1. 删除 .yarnrc 和 .npmrc 文件
  2. 运行命令yarn config delete registry从纱线内部配置中删除当前注册表 URL
  3. 使用以下内容创建 .npmrc
registry=https://nexus-registry-url.com
always-auth=true
_auth=<base64-token-value>
Run Code Online (Sandbox Code Playgroud)

此步骤yarn install适用于我的本地计算机和我们在 docker 中的项目 CI/CD。