2016-07-01 15 views
1

Linuxでこの1行のスクリプトをsudoとして実行すると、Mac OS X上でエラーが発生します。require( 'os').linuxのhomedir()エラー

var homedir =require('os').homedir(); 

エラー:

testhomedir.js:1 
quire, module, __filename, __dirname) { var homedir = require('os').homedir(); 
                    ^

TypeError: undefined is not a function 

    at Object.<anonymous> (/home/marco/test/testhomedir.js:1:91) 
    at Module._compile (module.js:460:26) 
    at Object.Module._extensions..js (module.js:478:10) 
    at Module.load (module.js:355:32) 
    at Function.Module._load (module.js:310:12) 
    at Function.Module.runMain (module.js:501:10) 
    at startup (node.js:129:16) 
    at node.js:814:3 

任意のアイデアの?

+0

おそらく古いバージョンのLinuxで稼働しているでしょう( 'node --version'で確認してください)。 – robertklep

+0

私はバージョン4.4.7を使用しています –

+0

私はLinux上で同じバージョンを実行しています。あなたは 'sudo'が正しいNodeインタプリタを使用していると確信していますか? 'sudo node --version'は別のバージョンを提供しますか? – robertklep

答えて

1

Robertがコメントで指摘したように、私のsudoは普通のユーザーよりも別のバージョンのノードを使いました。

このstackoverflow postは私の問題に答えてノードを使用して、コマンド

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local 

このコピーはフォルダにアクティブに使用されるノードのバージョンが世界的に使用を発行

停止すべてのサービスを私に提供しました。