97

rc我对典型节点应用程序中的各种文件有一些疑问,例如.npmrc.babelrc

  • 什么是 rc 文件,我知道它是模块的运行时配置,但还有别的吗?
  • rc 文件是否必须遵循.[module]rc命名约定,还是只是推荐的格式?
  • 支持哪些格式?我见过 yaml 和 json 格式,它是否取决于模块使用的阅读器?
  • 如何从模块的角度访问 rc 文件?是否将其命名为[module]rc使其自动可用于模块?如果是这样,它将在哪里提供?
  • 或者该模块是否应该像使用该模块的应用程序中的任何其他文件一样访问该文件并期望它采用可理解的格式?(这就是我现在正在做的,用json格式)
  • 我还看到有人需要package.json加载配置。推荐哪个,package.json还是rc文件?
  • 此外,它与诸如gulpfile.jswith之类的 javascript 文件有何不同module.exports?(我是说推荐的意思,当然知道js和rc文件的区别和优势)

每次我在谷歌搜索时,我都会在这里这里结束,这是一个读取 rc 文件的工具,但没有解释它们是什么或它们是如何构造和/或连接到模块的。

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

4

3 回答 3

65

所以首先,问得很好。

rcdotfiles 是配置文件,它们的用途、格式和整体含义可能会有所不同。您可以创建.[whatever name you like]rc文件来通知您碰巧创建的任何包(假设另一个包不是在寻找同一个包)。通常,它们对于作用您的源代码并需要针对您的项目进行一些调整的某种工具很有用。我的理解是,在过去的几年中,类似的文件在 UNIX 系统中发挥了重要作用,并且这个想法一直存在。

简而言之:

  • 它们不是特定于节点的。
  • 它们只是另一个文件
  • 就格式而言,它们几乎可以是任何东西——这取决于你将使用什么来解析和读取它们。YAML、JSON 和 ini 可能是最常见的(至少我见过)。
  • 在大多数情况下,他们似乎遵循惯例.[program or binary name]rc
  • package.json文件可以包含适用于配置的外部元数据,这仅取决于您的项目是否需要.rc文件或需要文件package.json(或两者,如 babel 的情况)

也可以看看:

作为一个非常简单的例子:

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

{
  "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));
})

有很多更好的方法可以做到这一点,但是您可以轻松地编写自己的或找到支持 YAML、ini 等解析并提供 API 的其他一些不错位的包(例如,rc

于 2016-03-25T00:47:26.540 回答
23

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

来自维基百科

配置文件还不仅仅是修改设置,它们通常(以“rc 文件”的形式)在启动时运行一组命令(例如,shell 的“rc 文件”可能会指示 shell 更改目录,运行某些程序,删除或创建文件——许多事情不涉及修改 shell 本身的变量,因此不在 shell 的点文件中)。该约定是从 CTSS 操作系统上的“runco​​m 文件”借用的。

此功能 可以并且已经针对以解释性 语言编写的程序进行了扩展,因此配置文件实际上是另一个程序 重写或扩展或自定义原始程序;Emacs 是最突出的例子。

“rc 文件”“rc”命名约定受上述“runco​​m”工具的启发,并不代表经常被错误猜测的“资源配置” “运行时配置”“远程控制” 。

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

润康

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

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

换句话说,“rc”只是 60 年代遗留下来的东西,从那时起,它就经常用于各种程序的配置文件,包括 Node、Babel 和许多其他程序。

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

于 2016-03-25T00:40:15.653 回答
9

RC 指

  • 运行命令
  • 运行时配置

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

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

于 2017-03-06T10:54:20.797 回答