在 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
并且有效。不知道为什么我必须这样做
如果需要 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
并且有效。不知道为什么我必须这样做