503 Stimmen

Ermitteln des Projektstamms aus einer laufenden node.js-Anwendung

Gibt es einen anderen Weg, außer process.cwd() , um den Pfadnamen des Root-Verzeichnisses des aktuellen Projekts zu erhalten. Implementiert Node so etwas wie die Eigenschaft von Ruby, Rails.root ,. Ich bin auf der Suche nach etwas, das konstant und zuverlässig ist.

0voto

Karthik M Punkte 512

Erstellen Sie eine Funktion in app.js

/*Function to get the app root folder*/

var appRootFolder = function(dir,level){
    var arr = dir.split('\\');
    arr.splice(arr.length - level,level);
    var rootFolder = arr.join('\\');
    return rootFolder;
}

// view engine setup
app.set('views', path.join(appRootFolder(__dirname,1),'views'));

0voto

Kapil Chhipa Punkte 11
path.dirname(process.mainModule.filename);

0voto

Rafi Henig Punkte 5070

Das reicht aus:

path.join(...process.argv[1].split(/\/|\\/).slice(0, -1))

0voto

Ganesh Rathinavel Punkte 1203

Die Suche nach dem Root-Pfad einer Elektronenapplikation könnte schwierig werden. Denn der Root-Pfad ist für den Hauptprozess und den Renderer unter verschiedenen Bedingungen wie Produktion, Entwicklung und Paketbedingungen unterschiedlich.

Ich habe ein npm-Paket geschrieben electron-Root-path um den Root-Pfad einer Elektronen-App zu erfassen.

$ npm install electron-root-path

or 

$ yarn add electron-root-path

// Import ES6 way
import { rootPath } from 'electron-root-path';

// Import ES2015 way
const rootPath = require('electron-root-path').rootPath;

// e.g:
// read a file in the root
const location = path.join(rootPath, 'package.json');
const pkgInfo = fs.readFileSync(location, { encoding: 'utf8' });

0voto

vbranden Punkte 5316

Ich benutze dies.

Für mein Modul namens mymodule

var BASE_DIR = __dirname.replace(/^(.*\/mymodule)(.*)$/, '$1')

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X