2016-08-15 7 views
0

ノードアプリケーションをテストするために、バーチャルボックスで最小の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ウィンドウから再実行することもできますが、エラーは発生しません。どうすればいいの?

+1

ヒント:グローバル 'あなたがしたいモジュールをインストールしないでくださいrequire() ' – mscdex

+0

"私のアプリケーションがあるディレクトリ(Windowsホストの共有ディレクトリ)がシンボリックリンクをサポートしていないため、グローバルにインストールします。 " –

+0

(1)ウィンドウを閉じる前に仮想ボックスからログアウトしましたか? (2)Windowsやssh経由でログインしたときのシェルは同じですか? (3)ログインするたびに手作業でNODE_PATHを設定するのか、あるいはいくつかのシェルrcファイルにNODE_PATHを手動で設定していますか? –

答えて

0

宣言〜/ .profileファイル内NODE_PATHや/ etc/profileを:

export NODE_PATH=/usr/lib/node_modules 

.bachrcファイルは、SSHセッションのデフォルトによって供給されていない

関連する問題