什么是nodejs中的`rc`文件?

我有一些关于典型节点应用程序中的各种rc文件的问题,比如.npmrc.babelrc

  • 什么是RC文件,我知道它是一个模块的运行时configuration,但其他什么?
  • rc文件是否必须遵循.[module]rc命名约定还是只是推荐的格式?
  • 什么是支持的格式? 我已经看到了yaml和json格式,这取决于模块使用的读者吗?
  • 如何从模块的angular度访问一个RC文件? 是否将它命名为[module]rc会使其自动提供给模块? 如果是的话,它将在哪里可用?
  • 还是应该模块访问该文件就像使用该模块的应用程序中的任何其他文件,并期望它是一个可以理解的格式? (这是我现在正在做的,用json格式)
  • 我也看到有人需要package.json加载configuration。 推荐使用package.json还是一个rc文件?
  • 也是如何不同于像gulpfile.jsmodule.exports JavaScript文件? (我的意思是build议,当然我知道js和rc文件的区别和优点)

每次我在谷歌search,我在这里和这里结束,这是一个工具来读取RC文件,但没有解释他们是什么,或如何构build和/或连接到模块。

任何见解都会非常有用。 谢谢

       

网上收集的解决方案 "什么是nodejs中的`rc`文件?"

所以首先,很好地问。

rc dotfiles是configuration文件,可以在其使用,格式和整体意义上有所不同。 你可以创build.[whatever name you like]rc文件来告诉你正在创build的包(如果另一个包不是在寻找同一个包的话)。 通常,这些工具对于某些types的工具是有用的,这些工具会影响源代码,并且需要针对您的项目进行一些调整。 我的理解是,有类似的文件在过去几年在UNIX系统中发挥了重要的作用,并且这个想法一直存在。

简而言之:

  • 它们不是特定于节点的。
  • 他们只是另一个文件
  • 就格式而言,它们几乎可以是任何东西 – 这取决于你将用什么来parsing和阅读它们。 YAML,JSON和ini可能是最常见的(至less我见过)。
  • 在大多数情况下,他们似乎遵循约定.[program or binary name]rc
  • package.json文件可以包含适合于configuration的外部元数据,这取决于你的项目是否需要一个.rc文件,或者期望它在package.json (或者两者都是,比如在babel中)

也可以看看:

作为一个令人难以置信的简单例子:

假设你想读这个使用JSON编码的.foorc文件:

 { "cool": true } 

你可以做这样的事情:

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

要做到这一点,还有很多更好的方法,但是你可以很容易地编写你自己的程序,或者find一个能够支持YAML,ini等parsing的程序包,并提供一些API的其他好处(例如rc )

它不是特定于Node或Babel,但是*rc文件通常是Unix系统中的configuration文件

从维基百科

configuration文件不仅仅是修改设置,它们通常(以“rc文件”的forms)在启动时运行一组命令(例如,shell的“rc文件”可能会指示shell更改目录,运行某些程序,删除或创build文件 – 很多不涉及修改shell中的variables的东西,所以不在shell的文件中)。 这个约定是从CTSS操作系统上的“runco​​m文件”中借用的。

对于以解释型 语言 编写的程序, 此function 可以并且已被扩展 ,使得configuration文件实际上是另一个程序 重写或扩展或定制原始程序 ; Emacs是最突出的例子。

“rc文件” 的“rc”命名约定是受上述“runco​​m”设施的启发,并不代表经常错误猜测的“资源configuration”“运行时configuration”“远程控制”

“rc”文件传统上是以“(。)rc”后缀结尾的文件,其中包含用作关联程序的configuration信息的数据和信息。 通常,该程序的名称是rc文件名称的第一部分,后缀“(。)rc”用于指示文件的用途,例如“.xinitrc”“.vimrc”“.bashrc”“ xsane.rc“

和Runcom

Unix:通过CTSS系统1962-63上的runco​​m文件,通过启动脚本/ etc / rc

包含应用程序(或整个操作系统)的启动指令的脚本文件,通常是一个文本文件,其中包含可能在系统运行后手动调用但将在系统启动时自动执行的sorting命令。 另请参阅点文件。

换句话说, “rc”只是一种从六十年代开始就停滞不前的东西,而且由于包括Node,Babel以及许多其他的许多程序,所以经常用于不同types的程序中的configuration文件。

没有什么特别的“rc”文件,它们实际上可以包含任何types的数据,没有规范或其他限制。

RC是指

  • 运行命令
  • 运行时configuration

引文:

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

'rc'后缀可以追溯到Unix的祖父母CTSS。 它有一个名为“runco​​m”的命令脚本function。 早期的Unix使用'rc'作为操作系统引导脚本的名字,作为CTSS runco​​m的致敬。