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

时间:2016-03-25 00:28:09

标签: javascript node.js configuration package runtime-configuration

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

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

每次我在谷歌搜索时,我都会herehere,这是一个阅读rc文件的工具,但不解释它们是什么或如何构建和/或连接到模块。

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

3 个答案:

答案 0 :(得分:33)

首先,很好问。

rc dotfiles是配置文件,其使用,格式和整体含义可能不同。您可以创建.[whatever name you like]rc个文件来通知您正在创建的任何包(如果另一个包不是在寻找相同的包)。通常,它们对于某些 源代码的工具非常有用,并且需要针对您的项目进行一些调整。我的理解是,类似的文件在过去几年中在UNIX系统中发挥了重要作用,并且这个想法已经停滞不前。

简而言之:

  • 他们并不特定于节点。
  • 他们只是另一个档案
  • 就格式而言,它们几乎可以是任何东西 - 它只取决于您用来解析和阅读它们的内容。 YAML,JSON和ini可能是最常见的(至少我已经看过)。
  • 在大多数情况下,他们似乎遵循惯例.[program or binary name]rc
  • package.json文件可以包含适用于配置的外部元数据,它只取决于您的项目是否需要.rc文件或期望package.json(或两者,如巴贝尔的情况)

另见:

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

假设您要阅读使用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));
})

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

答案 1 :(得分:15)

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

来自Wikipedia

  

配置文件通常不仅仅是修改设置   (以" rc文件" 的形式)在启动时运行一组命令(用于   例如,shell的" rc文件" 可能会指示shell更改   目录,运行某些程序,删除或创建文件 - 很多   那些不涉及修改shell本身变量的东西   所以不在shell的dotfiles中。   这个约定来自" runco​​m文件"在CTSS操作系统上。

     

此功能   可以并且已经扩展用于以解释编写的程序   语言,使配置文件实际上是另一个程序   重写或扩展或自定义原始程序; Emacs是   最突出的这样的例子。

     

" rc" " rc文件" 的命名惯例 的灵感来自" runco​​m"上面提到的设施和确实   不代表"资源配置" "运行时配置" ,或者   "远程控制" 通常是错误的猜测。

     

" rc" 文件传统上是以"(。)rc"后缀和   其中包含用作配置的数据和信息   相关程序的信息。通常是那个名字   program是rc文件名的第一部分,带有"(。)rc"   后缀用于表示文件的目的,例如"的.xinitrc" ,   " .vimrc" " .bashrc" " xsane.rc"

Runcom

  

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

     

包含启动指令的脚本文件   应用程序(或整个操作系统),通常是文本   包含可能已被调用的排序的命令的文件   一旦系统运行但将要执行,请手动   每次系统启动时自动进行。另见dot文件。

换句话说," rc" 只是在六十年代停留的东西,并且经常被用于不同类型的程序中的配置文件,包括Node,Babel和许多其他人。

&#34; rc&#34; 文件并没有什么特别之处,它们几乎可以包含任何类型的数据,没有规范或其他限制。< / p>

答案 2 :(得分:3)

RC指的是

  • 运行命令
  • 运行时配置

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

'rc'后缀可以追溯到Unix的祖父母CTSS。 它有一个名为&#34; runco​​m&#34;的命令脚本功能。早 Unix使用'rc'作为操作系统的名称 引导脚本,作为对CTSS runco​​m的致敬。