npm install 返回 401 Unauthorized - Gitlab NPM 注册表(私有)

Agu*_*ara 5 npm gitlab gitlab-ci npm-install

我正在尝试在私人项目中使用存储在Gitlab npm 注册表中的 npm 包。

为了发布我的包,我使用了:

  • 我的 .gitlab-ci.yml

    image: node:12
    stages:
      - deploy
    deploy:
      stage: deploy
      script:
        npm config set @{{my-org-name}}:registry https://gitlab.com/api/v4/projects/{{project-id}}/packages/npm/
        npm config set "//gitlab.com/api/v4/projects/{{project-id}}/packages/npm/:_authToken" '{{my-auth-token}}'
        npm publish
    
    Run Code Online (Sandbox Code Playgroud)
  • 然后在package.json处发布配置:

    "publishConfig": {
      "access": "public",
      "@{{my-org-name}}:{{my-package-name}}": "https://gitlab.com/api/v4/projects/{{project-id}}/packages/npm/"
    }
    
    Run Code Online (Sandbox Code Playgroud)

此步骤正确创建了包,但是当尝试使用npm i @{{my-org-name}}/{{my-package-name}}I 步骤安装时401 Unauthorized error

我假设我在某处缺少身份验证配置,但无法弄清楚是哪个或在哪里!

Geo*_*los 5

我正在一个私有模块中工作,我能够安装该包的唯一方法是在项目的根目录中设置 .npmrc ,我想在其中安装具有如下内容的模块:

# Set URL for scoped packages.
@{scope}:registry=https://gitlab.yourdomain.com/api/v4/packages/npm/

# Create an environment variable for your GitLab auth token
'//gitlab.yourdomain.com/api/v4/packages/npm/:_authToken'="${GITLAB_AUTH_TOKEN}"

'//gitlab.yourdomain.com/api/v4/projects/{PROJECT_ID}/packages/npm/:_authToken'="${GITLAB_AUTH_TOKEN}"
Run Code Online (Sandbox Code Playgroud)

GITLAB_AUTH_TOKEN 是我必须在 GitLab 上的“配置文件和访问令牌”下创建的个人令牌。我把它放在环境变量中。

但是,我想找到一种无需创建个人令牌即可对用户进行身份验证的方法;我希望公司中的人们能够以另一种方式安装该模块,也许使用他们的 GitLab 凭据,但我还没有看到类似的东西......