Gibt es im node-webkit eine Möglichkeit, den Pfad zur aktuellen Anwendung zu finden? In node.js können Sie __dirname
verwenden, um den Pfad zur aktuellen Anwendung zu finden, aber in node-webkit scheint die Variable __dirname
nicht definiert zu sein.
Das folgende node.js-Skript gibt den Dateipfad korrekt aus:
console.log(__dirname)
Das folgende node-webkit-Skript druckt den Dateipfad nicht korrekt:
%Vor%Wie finde ich den Pfad zur aktuellen Anwendung in node-webkit richtig?
Die Antwort auf diese Frage wurde hier diskutiert: Ссылка
Unter Windows verwenden Sie "process.execPath", um den Pfad der ausführbaren Datei anzuzeigen, die ihn gestartet hat. Arbeiten Sie dann von dort und entfernen Sie den Dateinamen der ausführbaren Datei aus dem Pfad, um den Pfad des Ordners zu erhalten (vorausgesetzt, die .nw-Datei Ihrer Anwendung ist relativ zur ausführbaren Datei oder wird mit ihr kombiniert).
Dies funktioniert für mich, ob es mit der gezippten 'app.nw' ausgeführt wird oder wo 'nw.exe' und 'app.nw' in einer ausführbaren Datei (app.exe) kombiniert sind.
Der Link für die angenommene Antwort ist nicht mehr verfügbar, daher hier eine kurze Antwort:
nw.js extrahiert den Inhalt Ihrer App bei jedem Ausführen in ein temporäres Verzeichnis.
Wenn Sie auf den Pfad zugreifen möchten, in dem nw.js Ihre App extrahiert hat, verwenden Sie process.cwd()
In anderen Fällen, wo Sie auf den Pfad Ihrer ausführbaren App zugreifen möchten, verwenden Sie:
%Vor% Wenn Sie nach dem Pfad zur App-Quelle suchen (d. h. dem Ordner, der package.json
enthält), können Sie process.cwd()
verwenden.
Unabhängig vom tatsächlichen Arbeitsverzeichnis der Umgebung, wenn die ausführbare Datei des Knotens gestartet wird, wird process.cwd()
auf den Speicherort der App-Quelle gesetzt. Wenn die App in einem Archiv enthalten ist, zeigt cwd auf den temporären Ordner , in dem die Quelle extrahiert wird.
Wichtig: Beachten Sie, dass process.cwd()
während der Anwendung geändert werden kann, die von process.chdir(newPath)
und möglicherweise auch von anderen Ereignissen ausgeführt wird. Daher empfiehlt es sich, den Anfangswert beim Anwendungsstart zu speichern.
BEARBEITEN:
Nur um zu verdeutlichen, process.cwd()
wird auf den Ordner gesetzt, der die tatsächliche package.json
-Datei enthält, die von der laufenden App verwendet wird. Wenn Sie also Ihre App in ein Archiv oder eine ausführbare Datei gepackt haben (zip, exe, nwz, nw usw.), extrahiert nw.exe die Projektdateien in ein temporäres Verzeichnis, bevor die App ausgeführt wird. So zeigt process.cwd()
auf diesen temporären Ordner, nicht den Speicherort des ursprünglichen Archivs oder der ausführbaren Datei.
Tags und Links node-webkit