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


83

私は様々に関するいくつかの質問持っているrcように、典型的なノード・アプリケーション内のファイルを.npmrc.babelrcなど

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

私がグーグルで検索するたびに、私はここここに行き着きます。これはrcファイルを読み取るためのツールですが、それらが何であるか、またはそれらがどのように構築され、モジュールに接続されているかを説明していません。

どんな洞察も本当に役に立ちます。ありがとう


これらのファイルについて特別なことは何もありません。異なるモジュールが「たまたま」同様の戦略を使用します。
Felix Kling 2016年

回答:


56

それで、最初に、きちんと尋ねられました。

rcドットファイルは、使用法、フォーマット、および全体的な意味が異なる構成ファイルです。.[whatever name you like]rcファイルを作成して、作成しているパッケージを通知できます(別のパッケージが同じパッケージを探していない場合)。通常、彼らは働きツールのいくつかの並べ替えのために有用だ上で、あなたのソースコードとプロジェクトにいくつかのチューニングの特定が必要です。私の理解では、過去数年でUNIXシステムで重要な役割を果たした同様のファイルがあり、その考えは固執しています。

要するに:

  • それらはノードに固有ではありません。
  • それらは単なる別のファイルです
  • フォーマットに関しては、ほとんど何でもかまいません。解析と読み取りに使用するものによって異なります。YAML、JSON、およびiniがおそらく最も一般的です(少なくとも私が見た限りでは)。
  • ほとんどの場合、彼らは慣習に従っているようです .[program or binary name]rc
  • package.jsonファイルには、構成に適した外部メタデータを含めることができます。これは、プロジェクトが.rcファイルを期待するか、ファイルを期待するかpackage.json(または、babelの場合は両方)によって異なります。

参照:

信じられないほど簡単な例として:

.foorcJSONエンコーディングを使用するこのファイルを読みたいとしましょう。

{
  "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)を提供するパッケージを簡単に見つけることができます。


それで、パッケージは他のファイルと同じようにそれにアクセスしますか?require('./.modulerc')
Gopikrishna S 2016

「パッケージ」の意味によって異なりますが、そうです。簡単な例で更新します
markthethomas 2016年

17

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

ウィキペディアから

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

この機能 は、インタープリター 言語で 記述されたプログラムに対して拡張でき、拡張されており、構成ファイルは実際には元のプログラムを書き換えたり、拡張またはカスタマイズしたりする別のプログラムです。Emacsはそのような最も顕著な例です。

「rcファイル」の「rc」命名規則は、上記の「runco​​m」機能に触発されたものであり、「リソース構成」「ランタイム構成」、または 「リモート制御」を表すものではありません。

「rc」ファイルは、従来、「(。)rc」サフィックスで終わるファイルであり、関連するプログラムの構成情報として使用されるデータと情報が含まれています。通常、そのプログラムの名前はrcファイルの名前の最初の部分であり 、ファイルの目的を示すために「(。)rc」サフィックスが使用されます。例:「。xinitrc」「。vimrc」「。bashrc」「 xsane.rc "

そしてRuncom

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

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

言い換えれば、「rc」は60年代にさかのぼり、Node、Babel、その他多くのプログラムを含むさまざまな種類のプログラムの構成ファイルに頻繁に使用されてきました。

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


うーん..だから、何をすべきかを決めるのは読者次第ですよね?それにアクセスするための推奨される方法はありますか?
Gopikrishna S 2016

@GopikrishnaS- 「* rc」ファイルは、JavaScript、JSON、プレーンテキスト、XML、YAMLなど、ほとんど何でもかまいません。ファイルの解析方法は、ファイルの内容によって異なります。
adeneo 2016年

6

RCとは

  • コマンドを実行する
  • 実行時の構成

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

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


で、「RC」、「Runcom社」、または「CTSS」への言及はありませんen.wikipedia.org/wiki/Run_command
wyu

@wyuあなたは間違ったURLを参照しています。Run_commandの代わりにRun_commands。@rselvageneshは正しいURLを与えられました。
バラ

@bala答え内のURLは、私のコメントの後に編集された
wyu

@wyuokわかりました。
バラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.