In einem kontinuierlichen Einsatz Kontext betreibe ich ein Shell-Skript ausgeführt meine app auf dem Remote-Server zu aktualisieren, neu zu startenKann nicht npm in einem Shell-Skript
das Skript ist:
ssh [email protected] <<'ENDSSH'
cd /opt/myapp
git pull
npm i
forever stop src
npm run staging
ENDSSH
der Ausgang ist:
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
Hinweis:
alles funktionieren, wenn ich auf dem Remote-Server ssh und diese Befehle manuell
Knoten und npm mit NVM auf dem Remote-Server
which npm
/root/.nvm/versions/node/v6.10.0/bin/npm
So sieht es aus, als ob Sie versuchen, npm mit NVM zu verwenden. Haben Sie versucht, den nvm-Befehl im Skript auszuführen, um die Version auszuwählen? Bevor npm läuft? – wheeler
@wheeler hat 'nvm --version' im Skript hinzugefügt. hab '-bash: Zeile 3: nvm: command not found' – Jordane
Bei Ausführung in 'continuous deployment context' welchen Benutzer verwendest du - den selben, den du als ssh verwendest? Stellen Sie sicher, dass Knoten für CI-Benutzer verfügbar ist, indem Sie 'node --version' eingeben. – GreensterRox