這是我在任務中的 main.yml 檔案:
- name: Use npm
shell: >
/bin/bash -c "source $HOME/.nvm/nvm.sh && nvm use 16.16.0"
become: yes
become_user: root
- name: Run build-dev
shell: |
cd /home/ec2-user/ofiii
npm install
npm run build-dev
become: yes
become_user: root
when: platform == "dev"
以及運行腳本時的輸出:
fatal: [172.31.200.13]: FAILED! => {
"changed": true,
"cmd": "cd /home/ec2-user/ofiii\nnpm install\nnpm run build-stag\n",
"delta": "0:00:00.061363",
"end": "2022-11-09 09:45:17.917829",
"msg": "non-zero return code",
"rc": 127,
"start": "2022-11-09 09:45:17.856466",
"stderr": "/bin/sh: line 1: npm:命令找不到\n/bin/sh: line 2: npm:命令找不到",
"stderr_lines": ["/bin/sh: line 1: npm:命令找不到", "/bin/sh: line 2: npm:命令找不到"],
"stdout": "",
"stdout_lines": []
}
錯誤是“npm:command not found”但我真的很確定安裝和在機器中適當設定的路徑,我懷疑的是腳本
我不知道如何修改我的腳本,我嘗試使用 npm 模塊,但我失敗了
uj5u.com熱心網友回復:
問題是每個任務環境都是獨立的,您nvm在單獨的任務中設定環境。
“ Run build-dev ”對“ Use npm ”設定的路徑一無所知
我建議將這兩個任務結合起來,并在下面解釋一些額外的變化:
- name: Run build-dev
shell: |
source $HOME/.nvm/nvm.sh
nvm use 16.16.0
npm install
npm run build-dev
args:
executable: /bin/bash
chdir: /home/ec2-user/ofiii
become: yes
become_user: root
when: platform == "dev"
其他變化:
- 在 shell 模塊中使用
bash -c "..."會導致/bin/sh -c "/bin/bash -c '...'",最好改為executable: /bin/bash使用 - Shell 模塊有
chdir引數來指定腳本運行的目錄
檢查shell 模塊檔案以獲取其他引數和示例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530328.html
標籤:npm可靠的
下一篇:高山運算式錯誤:未定義顯示
