如何在NPM中使用gitlab repo和package.json

Tom*_* Li 4 npm gitlab package.json

我正在开发一个内部项目,想要在组内共享工具.

但如果我使用npm工具.它要么模块已经在npm网站上注册或公共git repo.

我正在使用gitlab.并且有一个私人令牌. git+https://gitlab-ci-token:\<private token>@<domain>/<username>/<repo_name>.git 我试图在package.json中这样说,但它不起作用.

有没有办法用授权安装私人gitlab仓库?

非常感谢.

Jaw*_*wad 9

如果我正确理解您的问题,您希望运行npm的CI管道能够从您的gitlab中提取私有项目作为依赖项.

在这种情况下,您可以在gitlab中使用部署密钥机制(参见此处).

首先生成SSH密钥对.你可以用ssh-keygen -t rsa它.

然后转到私有存储库的gitlab页面并找到该Deploy Keys设置.在那里,您应该粘贴刚刚生成的公钥.

然后转到在其CI中运行npm的项目并找到该Variables页面.使用名称创建一个新的私有变量,SSH_PRIVATE_KEY并粘贴您在那里生成的私钥.

最后,在您的.gitlab-ci.yml文件中添加以下内容,以便您的私钥可供CI环境使用:

- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
# Run ssh-agent (inside the build environment)
- eval $(ssh-agent -s)
# Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
Run Code Online (Sandbox Code Playgroud)

现在应该设置您的CI环境,以便可以拉出您的私有存储库.