首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从gitlab注册表获取npm包的最新版本

从gitlab注册表获取npm包的最新版本
EN

Stack Overflow用户
提问于 2022-07-05 19:14:42
回答 1查看 373关注 0票数 2

我正在尝试使用npm和.gitlab-ci.yml将一个包放到Gitlab注册表中。

.gitlab-ci.yml

代码语言:javascript
复制
npm-package:
  stage: build
  image: node:buster
  before_script:
    - git config --global user.name "${GITLAB_USER_NAME}"
    - git config --global user.email "${GITLAB_USER_EMAIL}"
  script:
    - npm config set @${CI_PROJECT_ROOT_NAMESPACE}:registry=https://${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/
    - npm config set //${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}
    - NPM_PACKAGE_NAME=$(node -p "require('.package.json').name")
    - NPM_PACKAGE_VERSION=$(node -p "require('./package.json').version")
    - echo $(npm view "${NPM_PACKAGE_NAME}" versions)
    - echo ${NPM_PACKAGE_NAME}
    - echo ${NPM_PACKAGE_VERSION}
    - |
      if [[ $(npm view "${NPM_PACKAGE_NAME}" versions) != *"'${NPM_PACKAGE_VERSION}'"* ]]; then
        npm config set //${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}
        npm publish
        echo "Successfully published version ${NPM_PACKAGE_VERSION} of ${NPM_PACKAGE_NAME} to GitLab's NPM registry: ${CI_PROJECT_URL}/-/packages"
      else
        echo "Version ${NPM_PACKAGE_VERSION} of ${NPM_PACKAGE_NAME} has already been published, so no new version has been published."
      fi

我第一次尝试,包成功地保存在回购。现在,我试图在以下条件下运行它:如果版本的包已经更改,那么运行npm发布。但是变量$(npm view "${NPM_PACKAGE_NAME}" versions)似乎是空的,当我试图回显它时,我得到了错误:

npm错误!代码E401 npm!401未经授权-获取https://gitlab.example.com/api/v4/projects/1/packages/npm/@my_scope/my_package

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-05 19:41:54

你的CI没有足够的权利。

1-您需要通过npm (或通过命令行)从npm注册中心生成访问令牌(自动类型)。

使用UI:https://docs.npmjs.com/creating-and-viewing-access-tokens的过程

2-将令牌分配给您的CI可访问的环境变量(本例中命名为NPM_TOKEN )

3-然后创建(或更新)一个.npmrc文件,一行位于顶部://Regiy.npmjs.org/:_authToken=${NPM_TOKEN}

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72874473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档