簡體   English   中英

GitLab CI/CD shell 執行者:npm 命令未找到

[英]GitLab CI/CD shell executor: npm command not found

在我的服務器上,我已將 gitlab 運行器配置為使用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

通過在gitlab-runner user.profile中添加。 它適用於 ubuntu 20.04

env執行器使用.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
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM