2017-03-24 6 views
0

Dieser Code funktioniert unter Windows ohne Fehler.Knoten Linux/Windows-Kompatibilitätsprobleme

Wenn jedoch der gleiche Code auf einer Amazon Linux AMI-Box ausgeführt wird, erhalte ich den folgenden Fehler.

module.js:471 
    throw err; 
    ^

Error: Cannot find module './nodeHelperFunctions/datasources' 
    at Function.Module._resolveFilename (module.js:469:15) 
    at Function.Module._load (module.js:417:25) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (/home/ec2-user/testbed/js/app.js:17:59) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 

versucht, meinen Code zu

var connLaw = require(path.join(__dirname, 'nodeHelperFunctions/datasources')).service 
    , connPG = require(path.join(__dirname, 'nodeHelperFunctions/datasources')).postgis 
    , headers = require(path.join(__dirname, 'helperHtml/headers')) 
    , footers = require(path.join(__dirname, 'helperHtml/footers')) 
    , passCheck = require(path.join(__dirname, 'nodeHelperFunctions/hashsalt')) 
    ; 

wieder funktioniert perfekt in Windows bekam aber auf Linux einen ähnlichen Fehler zu ändern:

module.js:471 
    throw err; 
    ^

Error: Cannot find module '/home/ec2-user/testbed/js/nodeHelperFunctions/datasources' 
    at Function.Module._resolveFilename (module.js:469:15) 
    at Function.Module._load (module.js:417:25) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (/home/ec2-user/testbed/js/app.js:17:15) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 

wie kann ich Person Skripte werde ich mich geschrieben haben unter Linux arbeiten, wenn sie unter Windows perfekt funktionieren?

+0

'/ home/ec2-benutzer/testbett/js/nodeHelperFunctions/datasources' ist das der richtige weg? Wo ist das "nodeHelperFunctions" Verzeichnis? – Joe

+0

@akaphenom Dies ist wahrscheinlich die richtige Antwort, versuchen Sie, ändern Sie die Pfadnamen von CammelCase zu Bindestrich, oder sogar Unterstrich Format –

+0

@Saul ist richtig, wenn Sie Bindestriche verwenden es Groß-und Kleinschreibung aus der Gleichung. Ich verwende (jetzt) ​​Bindestriche für alle Datei- und Verzeichnisnamen und camelCase für Variablen innerhalb der Skripte. Ich wurde vor vielen Jahren verbrannt (ok 2014) und zu dieser Zeit auf Ubuntu Entwicklungsumgebung umgestellt, – akaphenom

Antwort

2

Es ist schwer zu sagen, was Sie gepostet - aber erfordert Module unter Linux Groß-und Kleinschreibung für den Dateinamen und Windows ... ... nicht so. Versuchen Sie, den Fall zu überprüfen.

edit: nicht nur der Dateiname - aber der gesamte Pfad.

+0

habe festgestellt, dass mein Dateiname tatsächlich dataSources.js Mein Code aktualisiert und dies meine Probleme behoben – shaun

Verwandte Themen