Nodejs absolute Pfade in windows mit Schrägstrich
Kann ich absolute Pfade mit Schrägstrich in windows in nodejs? Ich bin mit so etwas wie dieses :
global.__base = __dirname + '/';
var Article = require(__base + 'app/models/article');
Aber unter windows mit der build fehlschlägt, als es ist, erfordert etwas, wie C:\Something\Something/apps/models/article
. Ich aam mit webpack. So wie um dieses Problem zu umgehen, so dass die verursachenden bleibt die gleiche, d.h. __base + 'app/models/src'
?
InformationsquelleAutor der Frage Megh Parikh | 2015-12-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, es ist ein bisschen spät zu Antworten, aber ich glaube, meine Antwort wird so manchen Besucher.
In
Node.js
können Sie leicht erhalten Sie Ihre aktuelle Datei-name und-Verzeichnis, die nur mit__filename
und__dirname
Variablen beziehungsweise.Damit korrigieren Sie die vorwärts-und rückwärts-Schrägstrich entsprechend Ihrem system, die Sie verwenden können
path
ModulNode.js
Wie hier ist ein Durcheinander Weg und ich will es richtig sein, wenn ich es verwenden möchte auf meinem server. Hier die
path
Modul alles für Sie tun,Wenn Sie möchten, dass der absolute Pfad einer Datei, dann können Sie auch
resolve
Funktionpath
ModulInformationsquelleAutor der Antwort Vikas Bansal
Ich Tat es schließlich so:
Und dann zu verlangen
var Article = require(__base + 'app/models/article');
. Diese nutzt das npm-Paket Schrägstrich (ersetzt backslashes durch slashes in Pfaden und behandelt einige weitere Fälle)InformationsquelleAutor der Antwort Megh Parikh
Empfehle ich gegen diese, wie es patchen Knoten selbst, aber... naja, keine Veränderungen, wie Sie verlangen, Dinge.
InformationsquelleAutor der Antwort Amadan
Hier ist die zwei-liner, die für den vollen root-Pfad mit alle Schrägstriche in Windows (Windows 8 in meinem Fall) mit nur
path
Node-Modul:root
zeigen Sie den vollständigen Pfad zu der Datei, wo Sie aufgerufen wird, die obenpath.resolve()
plus Pfad unterhalb, passend zu den argument(./)
.replace
verwendet/\\/g
regex ersetzen Sie alle Instanzen von\
impath.resolve()
Ergebnis.Dies ist praktisch, denn mit
path.resolve()
Sie den gewünschten Pfad dynamisch aufgelöst.replace()
ist native JS-Funktion, keine Notwendigkeit zu laden, nichts anderes.@Megin:
nur machen
global.__base = __dirname.replace(/\\/g, '/') + '/';
, und geben Sie dann die gleicherequire
- Anweisung.InformationsquelleAutor der Antwort bob-12345