Hopp til innhold
Aksel

Aksel

Designsystemet
God praksisBloggen

Guide

Publisere npm pakker

I Nav publiserer vi interne npm-pakker på Github sitt npm registry.

Installere pakker lokalt

For å installere npm pakker med @navikt-scope trenger du en .npmrc-fil med følgende:

BASH
//npm.pkg.github.com/:_authToken=TOKEN
@navikt:registry=https://npm.pkg.github.com

Token genererer du under developer settings på Github. Den trenger kun read:packages. Husk å enable SSO for navikt-orgen!

Installere pakker i Github workflow

For å slippe å bruke din egen token til å installere pakker fra en Github workflow har vi definert en org-wide token READER_TOKEN.

Dette er da stegene som trengs i workflowen (se komplett eksempel i npm-publish-workflow.yml):

YAML
- uses: actions/setup-node@v3
with:
node-version: 16
registry-url: "https://npm.pkg.github.com"
- run: npm ci
env:
NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }}

Feilsøking

registry-url må være definert for at NODE_AUTH_TOKEN skal fungere.

Publisere pakker

Den enkleste måten å publisere en pakke er i en Github workflow vha. GITHUB_TOKEN på denne måten (se komplett eksempel i npm-publish-workflow.yml):

YAML
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Publisere til npm

Om du allikevel trenger å publisere under navikt-orgen på npmjs kan du ta kontakt med @npm-admins på Slack.

Vi anbefaler da å ta i bruk trusted publishing, slik at du ikke trenger å generere token og får provenance håndtert for deg.

Hvorfor Github npm registry

Grunnen til at vi bruker github framfor npmjs er at vi ikke har SSO på npmjs. Dette gjør det vanskelig å ha god tilgangskontroll.

Medvirkende

MiljøFrontend

Innspill til artikkelen

Logg inn med Nav SSO for å gi innspill til artikkelen

Logg inn med Nav SSO