28

Ich habe einige Fragen in Bezug auf verschiedene rc Dateien in einer typischen Knoten-Anwendung, wie .npmrc, .babelrc usw.Was sind `rc` Dateien in Nodejs?

  • Was für eine RC-Datei ist, ich weiß, es ist ein Runtime-config für das Modul, aber etwas anderes?
  • Muss die RC-Datei .[module]rc Namenskonvention folgen oder ist es nur ein empfohlenes Format?
  • Welche Formate werden unterstützt? Ich habe sowohl YAML- als auch JSON-Formate gesehen, hängt es von dem Leser ab, den das Modul verwendet?
  • Zugriff auf eine RC-Datei aus der Perspektive eines Moduls? Würde es als [module]rc benennen es automatisch für das Modul verfügbar machen? Wenn ja, wo wird es verfügbar sein?
  • Oder sollte das Modul wie jede andere Datei von der App, die das Modul verwendet, auf die Datei zugreifen und erwarten, dass sie in einem verständlichen Format vorliegt? (Dies ist, was ich gerade mache, mit JSON-Format)
  • Ich habe auch Leute gesehen, die package.json benötigen, um Config zu laden. Welche wird empfohlen, package.json oder eine RC-Datei?
  • Auch wie unterscheidet es sich von einer Javascript-Datei wie gulpfile.js mit module.exports? (Ich wollte im Sinne von Empfehlungen, natürlich weiß, dass ich den Unterschied und die Vorteile der js und rc-Dateien)

Jedes Mal, wenn ich in Google-Suche, ich am Ende here und here, das ist ein Werkzeug zu lesen RC-Datei, aber nicht erklären, was sie sind oder wie sind sie konstruiert und/oder mit dem Modul verbunden.

Jeder Einblick wäre wirklich nützlich. Dank

+0

Es gibt nichts besonderes an diesen Dateien, verschiedene Module "einfach passieren", um eine ähnliche Strategie zu verwenden. –

Antwort

15

Also erstmal, nett gefragt.

rc dotfiles sind Konfigurationsdateien, die in ihrer Verwendung, Formatierung und Gesamtbedeutung variieren können. Sie können .[whatever name you like]rc Dateien erstellen, um zu informieren, welches Paket Sie gerade erstellen (vorausgesetzt, ein anderes Paket sucht nicht nach demselben). In der Regel sind sie nützlich für eine Art von Werkzeug, das auf Ihren Quellcode handelt und benötigt einige Abstimmung für Ihr Projekt. Mein Verständnis ist, dass es ähnliche Dateien gab, die in den vergangenen Jahren eine wichtige Rolle in UNIX-Systemen gespielt haben und die Idee geblieben ist.

Kurz:

  • Sie sind mit dem Knoten nicht spezifisch.
  • Sie sind nur eine andere Datei
  • Soweit Formate, können sie fast alles sein - es hängt nur davon ab, was Sie verwenden, um sie zu analysieren und zu lesen. YAML, JSON und Ini sind wahrscheinlich die häufigsten (zumindest die, die ich gesehen habe).
  • In den meisten Fällen scheinen sie der Konvention .[program or binary name]rc
  • package.json Dateien externe Metadaten enthalten geeignet für config zu folgen, es kommt nur darauf an, ob Ihr Projekt eine .rc Datei erwarten wird oder es in package.json (oder beides erwarten, wie im Fall von babel)

Siehe auch:

Als unglaublich-einfaches Beispiel:

Sagen Sie bitte diese .foorc Datei lesen wollte, die JSON-Codierung verwendet:

{ 
    "cool": true 
} 

Sie so etwas tun könnte:

'use strict'; 
const fs = require('fs'); 
fs.readFile('./.foorc', 'utf8', (err, data) => { 
    if (err) throw new Error(err); 
    console.log(JSON.parse(data)); 
}) 

Es gibt weit, viel bessere Möglichkeiten, dies zu tun, aber Sie könnten einfach entweder Ihre eigenen schreiben oder ein Paket finden, das YAML, ini, etc. Parsing unterstützt und auch andere nette Teile einer API bereitstellt (zum Beispiel rc

)
+0

Also würde das Paket darauf wie jede andere Datei zugreifen, oder? 'require ('./. modulerc')'? –

+0

10 Hängt davon ab, was Sie mit "Paket" meinen, aber ja. Ich aktualisiere w/einfaches Beispiel – markthethomas

+0

Bekam es, danke :) –

9

Es ist nicht spezifisch für Knoten oder Babel, aber *rc Dateien sind in der Regel Konfigurationsdateien in Unix-Systemen

Von Wikipedia

Konfigurationsdateien auch mehr tun, als nur die Einstellungen ändern, sie oft (in Die Form einer "RC-Datei") führen eine Reihe von Befehlen beim Start (für Beispiel, die "RC-Datei" für eine Shell könnte die Shell anweisen,zu ändernVerzeichnisse, führen bestimmte Programme, löschen oder erstellen Sie Dateien - viele Dinge, die nicht zu ändern Variablen in der Shell selbst und so waren nicht in der Shell dotfiles). Diese Konvention wurde von "runcom files" auf dem CTSS-Betriebssystem übernommen.

Diese Funktionalität kann und wurde für Programme erweitert in interpretiert geschrieben Sprachen, so dass die Konfigurationsdatei Umschreiben oder Erweiterung oder das ursprüngliche Programm Customizing tatsächlich ein anderes Programm ist; Emacs ist das prominenteste Beispiel.

Die „rc“ Konvention von „rc Dateien“ Benennung durch die „Runcom“ Anlage über, „Laufzeitkonfiguration“ für „Ressourcenkonfiguration“ nicht erwähnt und nicht stehen inspiriert oder "Fernbedienung" wie oft falsch geraten.

„rc“ Dateien sind traditionell-Dateien, die in dem „(.) Rc“ Suffix beenden und die Daten und Informationen enthalten, die als Konfiguration Informationen für den zugeordneten Programm verwendet wird. Typischerweise ist der Name dieses Programms der erste Teil des Namens der rc-Datei, wobei das "(.) Rc" Suffix verwendet wird, um den Zweck der Datei anzugeben, z. ".xinitrc", ".vimrc", "Bashrc", "xsane.rc".

Und Runcom

Unix: von Runcom Dateien auf dem System CTSS 1962-1963, über das Startskript/etc/rc

Script-Datei Hinweise zur Inbetriebnahme für ein Anwendungsprogramm enthält, (oder ein ganzes Betriebssystem), in der Regel ein Text Datei mit Befehlen der Art, die manuell aufgerufen werden könnte, sobald das System ausgeführt wurde, aber ausführbar sein soll ted automatisch bei jedem Systemstart. Siehe auch Punktdatei.

Mit anderen Worten, „rc“ ist nur etwas, das von der Rückseite in den sechziger Jahren stecken, und wurde in verschiedenen Arten von Programmen, da, einschließlich Knoten, Babel und viele, viele sehr oft für Konfigurationsdateien Andere.

Es gibt nichts besonderes über "rc" Dateien, und sie können praktisch jede Art von Daten enthalten, gibt es keine Spezifikation oder andere Einschränkungen.

+0

Hmm .. es hängt also alles vom Leser ab, was zu tun ist, oder? Irgendeine empfohlene Art, darauf zuzugreifen? –

+0

@GopikrishnaS - Wie eine * "* rc" * Datei kann fast alles sein, Javascript, JSON, Nur-Text, XML, YAML oder was auch immer, wie Sie * die Datei * analysieren * hängt ganz davon ab, was es enthält. – adeneo

-1

RC bezieht sich auf

  • Lauf
  • Laufzeitkonfiguration

Citation Befehle:

https://en.wikipedia.org/wiki/Run_command

Das 'rc' Suffix geht auf Unix Großeltern, CTSS zurück. Es hatte eine Befehls-Skript-Funktion namens "runcom". Frühe Unixes verwendet 'rc' für den Namen des Bootsskripts des Betriebssystems , als eine Hommage an CTSS runcom.

+0

Es gibt keine Verweise auf "RC", "runcom" oder "CTSS" in https://en.wikipedia.org/wiki/Run_command – wyu