Wenn Sie eine Konfigurationsdatei als Argument an einen Knotenprozess übergeben, können Sie auf das Array der Befehlszeilenargumente zugreifen. Ich weiß nicht, ob Sie ein anderes Framework (wie das ausgezeichnete commander) verwenden, um Befehlszeilenprogramme zu erstellen, aber wir können das Array einfach zerlegen, um das zu finden, was wir brauchen.
Um einen Pfad aus dem Verzeichnis, in dem das Skript gestartet wird, aufzulösen, können Sie process.cwd()
verwenden - dies gibt einen absoluten Pfad zum Arbeitsverzeichnis des Knotenprozesses zurück.
Schließlich können Sie path.resolve(processPath, configPath)
(docs) verwenden, um einen Pfad zu generieren, der immer garantiert in die Config aufgelöst wird. Sie können dann diesen Pfad anfordern.
Sie müssen dies wahrscheinlich zuerst tun. Der Anfang der Datei wie folgt aussehen könnte:
/* relevant require() calls for necessary modules */
var path = require('path');
// first two arguments are node process and executed file
var args = process.argv.slice(2);
var configIndex = args.findIndex('-f') + 1;
var configPath = path.resolve(process.cwd(), args[configIndex]);
var config = require(configPath);
/* the rest of your code */
ich Ihnen für diese webpack einfach nicht denken müssen - sollten Sie es verlangen können, nachdem Sie 'Zugriff process.argv' – Barnabus
ich schon bin mit Webpack in diesem Projekt. Ich brauche nur eine Konfigurationsdatei. – zim32
Ok - ich werde eine ausführlichere Erklärung in einer Antwort unten hinzufügen :) – Barnabus