Problème selon lequel l'installation de yarn n'a pas pu être effectuée à partir du référentiel npm créé par Azure DevOps

Préface

J'ai décidé d'utiliser Azure Artifacts (un référentiel de packages tels que gradle et npm) dans mon projet, et lorsque j'ai essayé d'installer le package npm avec yarn install, la méthode officielle ne fonctionnait pas bien, je vais donc décrire la solution. Je vais.

Méthode officielle Azure

Selon la méthode officielle, vous devez écrire le contenu suivant dans .npmrc, puis installer le package. Le contenu réel des deux éléments suivants est décrit dans les paramètres générés automatiquement.

.npmrc


registry=https://pkgs.dev.azure.com/[Organazation Name]/_packaging/internal%40Local/npm/registry/
always-auth=true

; begin auth token
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal%40Local/npm/registry/:username=[Organazation Name]
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal%40Local/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal%40Local/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal%40Local/npm/:username=[User name]
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal%40Local/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal%40Local/npm/:email=npm requires email to be set but doesn't use the value
; end auth token

Cependant, bien que l'installation de npm puisse être effectuée par la méthode ci-dessus, l'installation de fil ne peut pas être effectuée. La sortie du journal des erreurs lors de l'installation du fil est la suivante.

$ yarn install

yarn-error.log


Trace:
  Error: https://pkgs.dev.azure.com/[Organazation Name]/_packaging/internal@Local/npm/registry/@[Organazation Name]/[Package]/-/[Package]-0.0.1.tgz: Request failed "401 Unauthorized"
      at ResponseError.ExtendableBuiltin (/opt/yarn-v1.22.4/lib/cli.js:696:66)
      at new ResponseError (/opt/yarn-v1.22.4/lib/cli.js:802:124)
      at Request.<anonymous> (/opt/yarn-v1.22.4/lib/cli.js:67057:16)
      at Request.emit (events.js:314:20)
      at Request.module.exports.Request.onRequestResponse (/opt/yarn-v1.22.4/lib/cli.js:141625:10)
      at ClientRequest.emit (events.js:314:20)
      at HTTPParser.parserOnIncomingClient (_http_client.js:640:27)
      at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17)
      at TLSSocket.socketOnData (_http_client.js:509:22)
      at TLSSocket.emit (events.js:314:20)

Cause

  1. Vous n'avez pas spécifié la portée du référentiel et la méthode d'authentification dans .npmrc.
  2. Dans la méthode Azure officielle, @ est encodé en URL en tant que% 40, mais yarn ne l'a pas décodé.

Solutions

Modifiez .npmrc avec les points suivants et effectuez l'installation de fil. [^ 1]

  1. Spécifiez la portée.
  2. Remplacez la pièce% 40 par @.

Après modification.npmrc


@[Organaization Name]:registry=https://pkgs.dev.azure.com/[Organazation Name]/_packaging/internal@Local/npm/registry/ #portée(@[Organization Name]) Est ajouté.%Où il est 40@Changez pour, et ainsi de suite.
@[Organaization Name]:always-auth=true #portée(@[Organization Name]Attacher)

; begin auth token
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal@Local/npm/registry/:username=[Organazation Name] #
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal@Local/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal@Local/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal@Local/npm/:username=[User name]
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal@Local/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/[Organazation Name]/_packaging/internal@Local/npm/:email=npm requires email to be set but doesn't use the value
; end auth token

[^ 1]: Vous pouvez faire l'installation de npm même avec le .npmrc modifié.

Recommended Posts

Problème selon lequel l'installation de yarn n'a pas pu être effectuée à partir du référentiel npm créé par Azure DevOps
Notez que Spring Data JDBC n'a pas pu insérer