GitLab CI/CD shell 执行程序:找不到 npm 命令

GitLab CI/CD shell executor: npm command not found

在我的服务器上,我配置了 gitlab runner 来使用 shell 执行器。 which node 命令给出:/home/ubuntu/.nvm/versions/node/v14.11.0/bin/node.

因此,我的 gitlab-ci.yml 文件具有以下内容:

stages:
  - prepare
  - check
  - deploy

default:
  before_script:
    - export PATH=$PATH:/home/ubuntu/.nvm/versions/node/v14.11.0/bin

prepare:
  stage: prepare
  only:
    refs:
      - dev
  before_script:
    - export PATH=$PATH:/home/ubuntu/.nvm/versions/node/v14.11.0/bin
  script:
    - npm i --ignore-scripts --include=dev
  cache:
    key: $CI_COMMIT_BRANCH
    paths:
      - node_modules/

prepare 作业抛出 npm: command not found 错误,管道失败。 如何解决这个问题?

您可以添加到 script: 步骤, npm 命令行之前:

- echo "PATH='${PATH}'"

这样,您就可以检查路径是否真的被修改了。

尝试添加引号:

- export PATH="$PATH:/home/ubuntu/.nvm/versions/node/v14.11.0/bin"

Shell 执行器使用 .profile 加载环境。您可以通过将此添加到 gitlab-runners $HOME/.profile:

让 gitlab-runner 使用 nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm