2016-07-01 6 views
1

Wenn ich dieses einzelne Zeilenskript in Linux als Sudo ausführen, bekomme ich einen Fehler, auf meinem Mac OSX ich nicht.require ('os'). Homedir() Fehler auf Linux

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

Fehler:

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 

irgendeine Idee?

+0

Sie betreiben wahrscheinlich eine alte Version von Node unter Linux (überprüfen Sie mit 'node --version'). – robertklep

+0

Ich verwende Version 4.4.7 –

+0

Ich bin die gleiche Version unter Linux läuft, funktioniert gut. Sind Sie sicher, dass 'sudo' den richtigen Node-Interpreter verwendet? Gibt 'sudo node --version 'eine andere Version? – robertklep

Antwort

1

Wie Robert im Kommentar darauf hinwies, verwendete mein sudo eine andere Knotenversion als mein normaler Benutzer.

diese stackoverflow post bot mir die Antwort auf mein Problem

Stop alle Dienstleistungen, die Knoten verwenden und geben Sie den Befehl

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

dies kopiert die aktive gebrauchte Knoten Version in den Ordner global verwendet.