在 gitlab 管道中安装私有 npm 包

install private npm package in gitlab pipelines

如果需要 install private repositories with npm 需要设置环境变量 NPM_TOKEN

NPM_TOKEN=00000000-0000-0000-0000-000000000000

我在 gitlab 管道中的构建阶段需要安装一个私有存储库。因此我把这个 NPM_TOKEN 秘密变量放在我的 gitlab pipeline 设置中。

我当前的gitlab-ci配置:

image: x/node

build_job: 
  script:
  - printenv NPM_TOKEN
  - npm i @x/test

docker 图像是我制作的,它只是设置了一个 .npmrc 文件:

FROM node:latest
COPY .npmrc .  

我在同一目录中有 .npmrc

//registry.npmjs.org/:_authToken=${NPM_TOKEN}

我试过 docker 图片:

 run -it myimage bash
 export NPM_TOKEN=...
 npm i @x/test

有效,私有包已安装。

但是在 gitlab 管道上它没有找到包 (404)。当作业运行时,我可以清楚地看到正在打印 NPM_TOKEN 环境变量。所以我不知道怎么回事。

我将 gitlab-ci 更改为:

image: dasnoo/node

build_job: 
  script:
  - printenv NPM_TOKEN
  - npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
  - npm i @dasnoo/testpriv

并且有效。不知道为什么我必须这样做