web-dev-qa-db-fra.com

Que sont les fichiers `rc` dans nodejs?

J'ai des questions concernant divers fichiers rc dans une application de nœud typique, comme .npmrc, .babelrc etc.

  • Qu'est-ce qu'un fichier rc, je sais que c'est une configuration d'exécution pour le module, mais autre chose?
  • Le fichier rc doit-il suivre .[module]rc convention de dénomination ou s'agit-il simplement d'un format recommandé?
  • Quels sont les formats pris en charge? J'ai vu les formats yaml et json, cela dépend-il du lecteur que le module utilise?
  • Comment accéder à un fichier rc du point de vue d'un module? Est-ce que le nommer comme [module]rc le rendrait-il automatiquement disponible pour le module? Si oui, où sera-t-il disponible?
  • Ou le module doit-il accéder au fichier comme tout autre fichier de l'application qui utilise le module et s'attendre à ce qu'il soit dans un format compréhensible? (C'est ce que je fais en ce moment, avec le format json)
  • J'ai également vu des personnes nécessitant package.json pour charger la configuration. Ce qui est recommandé, package.json ou un fichier rc?
  • En outre, en quoi diffère-t-il d'un fichier javascript comme gulpfile.js avec module.exports? (Je voulais dire dans le sens des recommandations, bien sûr, je connais la différence et les avantages des fichiers js et rc)

Chaque fois que je recherche dans google, je me retrouve ici et ici , qui est un outil pour lire le fichier rc mais n'explique pas ce que sont-ils ou comment sont-ils construits et/ou connecté au module.

Toute idée serait vraiment utile. Merci

57
Gopikrishna S

Alors tout d'abord, gentiment demandé.

rc les fichiers dot sont des fichiers de configuration qui peuvent varier dans leur utilisation, leur formatage et leur signification générale. Vous pouvez créer .[whatever name you like]rc fichiers pour informer le package que vous créez (à condition qu'un autre package ne recherche pas le même). Habituellement, ils sont utiles pour une sorte d'outil qui agit sur votre code source et a besoin d'un réglage spécifique à votre projet. Ma compréhension est qu'il y avait des fichiers similaires qui ont joué un rôle important dans les systèmes UNIX au cours des années passées et l'idée est restée.

En bref:

  • Ils ne sont pas spécifiques au nœud.
  • Ce n'est qu'un autre fichier
  • En ce qui concerne les formats, ils peuvent être presque n'importe quoi - cela dépend simplement de ce que vous utiliserez pour les analyser et les lire. YAML, JSON et ini sont probablement les plus courants (du moins ce que j'ai vu).
  • Dans la plupart des cas, ils semblent suivre la convention .[program or binary name]rc
  • package.json les fichiers peuvent contenir des métadonnées externes appropriées pour la configuration, cela dépend simplement si votre projet s'attendra à un .rc fichier ou attendez-le dans package.json (ou les deux, comme dans le cas de babel)

Voir également:

Comme exemple incroyablement simple:

Dites que vous vouliez lire ce .foorc fichier qui utilise le codage JSON:

{
  "cool": true
}

Vous pourriez faire quelque chose comme ça:

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

Il existe de bien, bien meilleurs moyens de le faire, mais vous pouvez facilement écrire le vôtre ou trouver un package qui prend en charge l'analyse YAML, ini, etc. et fournir d'autres bits Nice d'une API également (par exemple, rc )

36
markthethomas

Ce n'est pas spécifique à Node ou Babel, mais *rc les fichiers sont généralement des fichiers de configuration dans les systèmes Unix

De Wikipedia

Les fichiers de configuration font également plus que simplement modifier les paramètres, ils exécutent souvent (sous la forme d'un "fichier rc") un ensemble de commandes au démarrage (par exemple, le "rc fichier " pour un shell peut demander au shell de changer de répertoire, d'exécuter certains programmes, de supprimer ou de créer des fichiers - beaucoup de choses qui n'impliquent pas de modification de variables dans le shell lui-même et qui n'étaient donc pas dans les fichiers de points du shell). Cette convention est empruntée aux "fichiers runcom" du système d'exploitation CTSS.

Cette fonctionnalité peut et a été étendue pour les programmes écrits en interprété langues telles que le fichier de configuration est en fait un autre programme réécriture ou extension ou personnalisation du programme d'origine ; Emacs est l'exemple le plus important.

La convention de nommage "rc" de "fichiers rc" a été inspiré par la fonction "runcom" mentionnée ci-dessus et ne signifie pas "configuration des ressources", "configuration runtime", ou "télécommande" comme on le devine souvent à tort.

"rc" les fichiers sont traditionnellement des fichiers qui se terminent par le suffixe "(.) rc" et qui contiennent des données et des informations qui sont utilisées comme informations de configuration pour le programme associé. Typiquement, le nom de ce programme est la première partie du nom du fichier rc, avec le suffixe "(.) Rc" utilisé pour indiquer le but du fichier, par ex. ". xinitrc", ". vimrc", ". bashrc", "xsane.rc ".

Et Runcom

Unix: à partir de fichiers runcom sur le système CTSS 1962-63, via le script de démarrage/etc/rc

Fichier de script contenant des instructions de démarrage pour un programme d'application (ou un système d'exploitation entier), généralement un fichier texte contenant des commandes du type qui auraient pu être invoquées manuellement une fois que le système était en cours d'exécution mais qui doivent être exécuté automatiquement à chaque démarrage du système. Voir aussi fichier dot.

En d'autres termes, "rc" est juste quelque chose qui est resté dans les années 60, et a été utilisé assez souvent pour les fichiers de configuration dans différents types de programmes depuis, notamment Node, Babel et bien d'autres, beaucoup d'autres.

Il n'y a rien de spécial à propos des fichiers "rc", et ils peuvent virtuellement contenir tout type de données, il n'y a pas de spécification ou d'autres restrictions.

16
adeneo

RC fait référence à

  • exécuter des commandes
  • configuration d'exécution

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

Le suffixe "rc" remonte au grand-parent d'Unix, CTSS. Il avait une fonction de script de commande appelée "runcom". Les premiers Unix utilisaient "rc" pour le nom du script de démarrage du système d'exploitation, en hommage au runcom CTSS.

3
rselvaganesh