GitlabCI - 包注册表 - NPM 包无法发布

时间:2021-02-03 12:02:16

标签: npm package gitlab-ci

我的目标是在 Gitlab Registry 上发布一个 npm 包(如果可能的话是私有的)。

这是我的文件:

Package.json :

{
    "name": "@sushislasher/sushislasher-package",
    "version": "0.0.1",
    "description": "Package for game",
    "main": "index.ts",
    "repository": "https://gitlab.com/sushislasher/sushislasher-package",
    "author": "Gildraen",
    "license": "MIT",
    "private": false
}

Gitlab-CI.yml :

stages:
  - deploy

image: $CI_REGISTRY_IMAGE/docker-in-docker
services:
  - docker:dind

variables:
  DOCKER_DRIVER: overlay2
  COMPOSE_FILE: "docker-compose.yml:docker-compose.gitlab-ci.yml"

.template-load-gitlab-image: &internal-image
  before_script:
    - docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
    - docker-compose pull js || true

deploy:
  <<: *internal-image
  stage: deploy
  script:
    - |
      {
        echo "@${CI_PROJECT_ROOT_NAMESPACE}:registry=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/npm/"
    echo "${CI_API_V4_URL#https?}/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}"
  } | tee -a app/.npmrc

    - make install
    - make npm-publish

make install 构建容器,启动它们并进行纱线安装。 make npm publish 基本上是一个 npm publish。 都在容器里。 我正在使用 node:15.7-alpine

但是现在,尽管我做了所有的尝试和研究,还是无法完成这项工作,我遇到了这个错误:

npm ERR! need auth This command requires you to be logged in.
npm ERR! need auth You need to authorize this machine using `npm adduser`
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-02-03T11_51_48_233Z-debug.log
1

我尝试遵循 gitlab 文档 .. 但我现在有点卡住了.. 我做错了什么?

1 个答案:

答案 0 :(得分:0)

我设法做到了。经过多次尝试和尝试,以下是关键点。

  • 包名称。密切关注它是非常重要的。文档没有说的是“package.json”需要与注册表同名。 如果您的注册表是@foo,则您的注册表需要@foo/something 作为项目名称。使用我在脚本中提供的代码,它需要根项目,这就是注册表。

对我来说是 https://gitlab.com/gildraen/sushislasher-package 所以我的 package.json 名称是 @gildraen/sushislasher-package(虽然名称似乎并不重要)

所以我从头开始重新做了一遍,并更加关注这一点,并且奏效了。 我真的认为这是我真正的错误:注册表名称。

相关问题