ノードアプリケーションをテストするために、バーチャルボックスで最小のDebianストレッチをヘッドレスで実行しています。バーチャルボックスのSSH経由でノードが "モジュールを見つけることができません"
ノードアプリケーションの依存関係をsudo npm install -g discord.js
でインストールしました。私のアプリケーションがあるディレクトリ(Windowsホストへの共有ディレクトリ)がシンボリックリンクをサポートしていないため、これをグローバルにインストールします。
私はNODE_PATH
環境変数に/usr/local/lib/node_modules
を追加すると、私はVirtualboxの窓から期待ディレクトリとしてアプリケーションを実行することができます。
$ cd ~/my_app
$ node index.js
Connected
[...snip...]
しかし、私はVirtualboxのウィンドウを閉じ、SSH経由で同じアプリケーションを実行してみてください:
$ cd ~/my_app
$ node index.js
Error: Cannot find module 'discord.js'
at Function.Module._resolveFilename (module.js:325:15)
[...snip...]
マイNODE_PATH
環境変数が同じである、と私は、パッケージがそこにインストールされていることを確認することができます
$ ls /usr/local/lib/node_modules | grep "discord"
discord.js
sudo npm install -g discord.js
をSSHウィンドウから再実行することもできますが、エラーは発生しません。どうすればいいの?
ヒント:グローバル 'あなたがしたいモジュールをインストールしないでくださいrequire() ' – mscdex
"私のアプリケーションがあるディレクトリ(Windowsホストの共有ディレクトリ)がシンボリックリンクをサポートしていないため、グローバルにインストールします。 " –
(1)ウィンドウを閉じる前に仮想ボックスからログアウトしましたか? (2)Windowsやssh経由でログインしたときのシェルは同じですか? (3)ログインするたびに手作業でNODE_PATHを設定するのか、あるいはいくつかのシェルrcファイルにNODE_PATHを手動で設定していますか? –