Bashスクリプトのノードパスの問題

Bashスクリプトのノードパスの問題

私は単純なNode.jsベースのウェブサイトを起動するスクリプトを書いています。

cd ../ap-site/ && npm start

端末で上記のコマンドを実行すると問題はありませんが、スクリプトで実行すると次のような結果が表示されます。

/usr/bin/env: node: No such file or directory

私はそれを使用しています不揮発性現在のノードバージョンを管理したいので、nvm use 8.8.1ファイルに追加して~/.bashrcからスクリプトから直接ファイルをインポートしました。

source /home/rescue/.bashrc
cd ../ap-site/ && npm start

which npmまた、ターミナルで次のように生成されたパスを直接使用してみました。

cd ../ap-site/ && /home/rescue/.nvm/v8.8.1/bin/npm start

しかし、私は同じ結果を得ます。

状況をデバッグし、bashスクリプトでノードプロジェクトを実行する方法についてのアイデアはありますか?

ベストアンサー1

質問と回答を早く投稿して申し訳ありません。しかし、これは誰かに役立つかもしれません。

bashをソーシングしている間はファイルにありますが、nvmロードされないようです.bashrc

.bashrcスクリプトの上部から直接設定をインポートする代わりに、次の操作を行います。nvm

export NVM_DIR="/home/rescue/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
nvm use 8.8.1

これを行うと、npmコマンドが機能し始めました。

.bashrc同じ3行のコードが含まれているので、ソーシングが期待どおりに機能しない理由はまだわかりません。

sudoスクリプトが常に?で実行されることが関連している可能性があります。

おすすめ記事