servizi Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Azure Artifacts usa il file di configurazione npmrc per autenticare i client npm con feed. La configurazione consigliata mantiene la configurazione del feed e le credenziali in due file .npmrc distinti: un file a livello di progetto (versionato insieme al tuo package.json) che contiene l'URL del feed e un file a livello di utente (mai incluso in un commit) che contiene le tue credenziali.
Prerequisiti
|
Prodotto |
Requisiti |
|
Azure DevOps |
- Un'organizzazione di Azure DevOps. - Un progetto Azure DevOps . - Un feed di Azure Artifacts . - Scaricare Node.js e npm. |
Collegarsi a un feed
Selezionare la scheda corrispondente al sistema operativo e seguire la procedura per configurare i file con estensione npmrc :
Nota
vsts-npm-auth non è supportato in Azure DevOps Server.
Accedere all'organizzazione di Azure DevOps e quindi passare al progetto.
Selezionare Elementi e quindi selezionare il tuo feed dal menu a tendina.
Selezionare Connetti al feed e quindi selezionare npm nel riquadro di spostamento a sinistra.
Se non è stato installato vsts-npm-auth, eseguire il comando seguente:
npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false
Aggiungere un file con estensione npmrc al project nella stessa directory di package.json, quindi incollare il frammento di codice dalla sezione Project setup nel file.
Eseguire il comando seguente per aggiungere un token al file npmrc a livello di utente. npm restituisce un errore 401 Non autorizzato alla scadenza del token. Eseguire di nuovo questo comando per aggiornarlo.
vsts-npm-auth -config .npmrc
Accedere all'organizzazione di Azure DevOps e quindi passare al progetto.
Selezionare Elementi e quindi selezionare il tuo feed dal menu a tendina.
Selezionare Connetti al feed e quindi selezionare npm nel riquadro di spostamento a sinistra.
Aggiungere un file con estensione npmrc al project nella stessa directory di package.json, quindi incollare il frammento di codice dalla sezione Project setup nel file. Il file dovrebbe essere simile al seguente:
registry=https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
Configurazione delle credenziali
Copiare il frammento di codice seguente e incollarlo nel file npmrc a livello di utente:
feed con ambito organizzativo:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
feed con ambito progettuale:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Genera un token di accesso personale con ambito Packaging>.
Codifica il tuo PAT in Base64 utilizzando uno dei metodi seguenti:
Node.js (tutte le piattaforme): eseguire il comando seguente, immettere il pat quando richiesto e copiare il valore risultante.
node -e "require('readline') .createInterface({input:process.stdin,output:process.stdout,historySize:0}) .question('PAT> ',p => { b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit(); })"
macOS o Linux: eseguire il comando seguente e copiare l'output.
echo -n "YOUR_PERSONAL_ACCESS_TOKEN" | base64
Sostituisci i segnaposto [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] nel file .npmrc dell'utente con il valore codificato.
Accedere alla raccolta di Azure DevOps e quindi passare al progetto.
Seleziona Artefatti, seleziona il tuo feed dal menu a tendina e quindi seleziona Connettersi al feed.
Selezionare npm e quindi seguire la procedura descritta nella sezione Project setup per configurare il file npmrc ed eseguire l'autenticazione con il feed.
Accedere alla raccolta di Azure DevOps e quindi passare al progetto.
Selezionare Elementi e quindi selezionare il tuo feed dal menu a tendina.
Selezionare Connetti al feed e quindi selezionare npm nel riquadro di spostamento a sinistra.
Aggiungere un file con estensione npmrc al project nella stessa directory di package.json, quindi incollare il frammento di codice dalla sezione Project setup nel file. Il file dovrebbe essere simile al seguente:
registry=http://<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
Configurazione delle credenziali
Copiare il seguente frammento di codice e incollarlo nel file .npmrc a livello utente:
feed a livello di raccolta:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
feed con ambito progettuale:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Genera un token di accesso personale con ambito Packaging>.
Eseguite il comando seguente, immettete il PAT quando richiesto e quindi copiate il valore risultante con codifica Base64.
node -e "require('readline') .createInterface({input:process.stdin,output:process.stdout,historySize:0}) .question('PAT> ',p => { b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit(); })"
Sostituisci i segnaposto [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] nel file .npmrc dell'utente con il valore codificato.
Suggerimento
L'uso di registri multipli nei file con estensione npmrc è supportato con ambiti e origini upstream.
Contenuto correlato