在我有一個shell腳本執行更新重新啓動我的應用程序在遠程服務器的持續部署方面不能在shell腳本運行NPM
的腳本是:
ssh [email protected] <<'ENDSSH'
cd /opt/myapp
git pull
npm i
forever stop src
npm run staging
ENDSSH
輸出爲:
stdin: is not a tty
Already up-to-date.
-bash: line 3: npm: command not found
-bash: line 4: forever: command not found
-bash: line 5: npm: command not found
注:
一切工作,如果我ssh到遠程服務器並輸入這些命令手動
節點和故宮都安裝了NVM在遠程服務器上
which npm
給/root/.nvm/versions/node/v6.10.0/bin/npm
所以它看起來像你試圖使用npm與nvm。您是否曾嘗試在腳本中運行nvm命令來選擇版本?在運行npm之前? – wheeler
@wheeler在腳本中添加了'nvm --version'。得到'-bash:第3行:nvm:找不到命令' – Jordane
當你在用戶使用的'連續部署上下文'中執行時 - 與ssh相同?通過輸入'node --version'確保節點對CI用戶可用# – GreensterRox