web-dev-qa-db-ja.com

nodejsの `rc`ファイルとは何ですか?

.npmrc.babelrcなど、典型的なノードアプリケーションのさまざまなrcファイルに関する質問があります。

  • Rcファイルとは何ですか、モジュールのruntime-configを知っていますが、他に何かありますか?
  • Rcファイルは.[module]rc命名規則に従う必要がありますか、それとも単なる推奨形式ですか?
  • サポートされている形式は何ですか? yamlとjsonの両方の形式を見てきましたが、モジュールが使用するリーダーに依存しますか?
  • モジュールの観点からrcファイルにアクセスする方法は? [module]rcという名前を付けると、モジュールで自動的に使用可能になりますか?その場合、どこで入手できますか?
  • または、モジュールは、モジュールを使用しているアプリの他のファイルと同じようにファイルにアクセスし、理解できる形式であると想定する必要がありますか? (これは私が今やっていること、json形式で)
  • また、構成をロードするためにpackage.jsonを必要とする人々を見てきました。 package.jsonとrcファイルのどちらが推奨されますか?
  • また、gulpfile.jsmodule.exportsのようなjavascriptファイルとどう違うのですか? (推奨という意味で、もちろんjsファイルとrcファイルの違いと利点を知っています)

グーグルで検索するたびに、 here および here になります。これはrcファイルを読み取るためのツールですが、それらが何であるか、どのように構築されているか、 /またはモジュールに接続されています。

洞察は本当に役立つでしょう。ありがとう

57
Gopikrishna S

まず最初に、いい質問をしました。

rcドットファイルは、用途、フォーマット、および全体的な意味が異なる可能性がある構成ファイルです。 .[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などをサポートするパッケージを簡単に見つけることができます。 rc

36
markthethomas

NodeまたはBabelに固有ではありませんが、*rcファイルは通常、Unixシステムの構成ファイルです。

から ウィキペディア

構成ファイルは、設定を変更するだけではなく、多くの場合( "rc file"の形式で)起動時に一連のコマンドを実行します(たとえば、 "rc file"は、シェルにディレクトリの変更、特定のプログラムの実行、ファイルの削除または作成を指示します。シェル自体の変数の変更を伴わないため、シェルのドットファイル)。この規則は、CTSSオペレーティングシステム上の「runco​​mファイル」から借用しています。

この機能interpreted構成ファイルが実際に別のプログラムであるような言語元のプログラムの書き換えまたは拡張またはカスタマイズ; Emacsはそのような最も顕著な例です。

(rc)命名規則of "rc files"上記の「runco​​m」機能に触発され、「リソース構成」「ランタイム構成」、または "remote control"は、しばしば誤って推測されます。

"rc"ファイルは、伝統的に "(。)rc"接尾辞で終わり、関連プログラムの構成情報として使用されるデータと情報を含むファイルです。通常、そのプログラムの名前はrcファイル名の最初の部分であり、ファイルの目的を示すために使用される "(。)rc"接尾辞が付いています。 "。xinitrc" "。vimrc" "。bashrc" "xsane.rc"

そして Runcom

Unix:CTSSシステム1962-63のrunco​​mファイルから、起動スクリプト/ etc/rc経由

アプリケーションプログラム(またはオペレーティングシステム全体)の起動手順を含むスクリプトファイル。通常、システムの実行後に手動で呼び出される可能性のある種類のコマンドを含むテキストファイルシステムが起動するたびに自動的に実行されます。ドットファイルも参照してください。

言い換えれば、 "rc"は60年代にさかのぼり、Node、Babelなど、さまざまな種類のプログラムの設定ファイルに頻繁に使用されてきました。そして他にもたくさん。

"rc"ファイルには特別なものはなく、事実上あらゆる種類のデータを含めることができ、仕様やその他の制限はありません。

16
adeneo

RCは

  • コマンドを実行する
  • 実行時設定

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

「rc」サフィックスは、Unixの祖父母であるCTSSに戻ります。 「runco​​m」と呼ばれるコマンドスクリプト機能がありました。初期のUnixでは、CTSS runco​​mへのオマージュとして、オペレーティングシステムのブートスクリプトの名前に「rc」を使用していました。

3
rselvaganesh