nodejs의`rc` 파일은 무엇입니까?


83

나는 여러 가지에 대한 몇 가지 질문이 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 파일의 차이점과 장점을 알고 있습니다)

Google에서 검색 할 때마다 rc 파일을 읽을 수있는 도구 인 here and here로 끝나지만 파일이 무엇인지 또는 모듈이 어떻게 구성 및 / 또는 연결되는지 설명하지 않습니다.

어떤 통찰력이라도 정말 유용 할 것입니다. 감사


이러한 파일에는 특별한 것이 없으며, 유사한 전략을 사용하는 다른 모듈이 "그냥 발생합니다".
Felix Kling 2016 년

답변:


56

먼저, 잘 부탁드립니다.

rcdotfile은 사용, 형식 및 전체적인 의미가 다를 수있는 구성 파일입니다. 생성중인 .[whatever name you like]rc패키지를 알리는 파일을 생성 할 수 있습니다 (다른 패키지가 동일한 패키지를 찾지 않는 경우). 일반적으로 소스 코드 에서 작동 하고 프로젝트에 특정한 조정이 필요한 일종의 도구에 유용합니다 . 내 이해는 과거에 UNIX 시스템에서 중요한 역할을 한 유사한 파일이 있었고 그 아이디어는 멈췄습니다.

요컨대 :

  • 노드에만 국한되지 않습니다.
  • 그들은 다른 파일 일뿐입니다.
  • 형식에 관해서는 거의 모든 것이 될 수 있습니다. 단지 형식을 구문 분석하고 읽는 데 사용할 대상에 따라 다릅니다. YAML, JSON 및 ini가 아마도 가장 일반적 일 것입니다 (적어도 내가 본 것).
  • 대부분의 경우 그들은 협약을 따르는 것 같습니다 .[program or binary name]rc
  • package.json파일은 구성에 적합한 외부 메타 데이터를 포함 할 수 있습니다. 프로젝트가 .rc파일 을 예상하는지 또는 기대하는지 여부에 따라 다릅니다 package.json(바벨의 경우와 같이 둘 다).

또한보십시오:

믿을 수 없을 정도로 간단한 예 :

.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

"패키지"가 의미하는 바에 따라 다르지만 그렇습니다. 나는 업데이 트됩니다 w / 간단한 예제
markthethomas

17

Node 또는 Babel에만 국한되지 않지만 *rc일반적으로 파일은 Unix 시스템의 구성 파일입니다.

에서 위키 백과

구성 파일은 또한 설정을 수정하는 것 이상을 수행합니다. 종종 ( "rc 파일" 형식으로 ) 시작시 일련의 명령을 실행합니다 (예 : 쉘 의 "rc 파일" 은 쉘이 디렉토리를 변경하도록 지시 할 수 있습니다. 특정 프로그램을 실행하고, 파일을 삭제하거나 생성합니다. 쉘 자체에서 변수를 수정하지 않고 쉘의 도트 파일에없는 많은 것들이 있습니다. 이 규칙은 CTSS 운영 체제의 "runcom 파일"에서 차용되었습니다.

이 기능 구성 파일이 실제로 원래 프로그램을 다시 작성하거나 확장하거나 사용자 정의하는 다른 프로그램이되도록 해석 언어로 작성된 프로그램에 대해 확장 될 수 있으며 확장되었습니다 . Emacs가 가장 두드러진 예입니다.

"rc 파일" 의 "rc"명명 규칙 은위에서 언급 한 "runcom"기능에서 영감을 얻었으며종종 잘못 추측되는 "리소스 구성" , "런타임 구성" 또는 "원격 제어" 를 의미하지 않습니다.

"rc" 파일은 일반적으로 "(.) rc"접미사로 끝나고 관련 프로그램의 구성 정보로 사용되는 데이터 및 정보를 포함하는 파일입니다. 일반적으로 해당 프로그램의 이름은 rc 파일 이름의 첫 부분이며 "(.) rc" 접미사는 파일의 용도를 나타내는 데 사용됩니다 (예 : ".xinitrc" , ".vimrc" , ".bashrc" , "). xsane.rc " .

그리고 Runcom

Unix : 시작 스크립트 / etc / rc를 통해 CTSS 시스템 1962-63의 runcom 파일에서

응용 프로그램 (또는 전체 운영 체제)에 대한 시작 지침이 포함 된 스크립트 파일 . 일반적으로 시스템이 실행 중일 때 수동으로 호출되었을 수 있지만 시스템이 시작될 때마다 자동으로 실행되는 정렬 명령이 포함 된 텍스트 파일입니다. 도트 파일도 참조하십시오.

다시 말해서, "rc" 는 60 년대에 고착 된 것일 뿐이며, Node, Babel 및 기타 여러 프로그램을 포함하여 다양한 종류의 프로그램에서 구성 파일에 자주 사용되었습니다.

"rc" 파일에는 특별한 것이 없으며 사실상 모든 종류의 데이터를 포함 할 수 있으며 사양이나 기타 제한 사항이 없습니다.


흠 .. 그래서 무엇을할지 결정하는 것은 독자에게 달려 있죠? 액세스하는 데 권장되는 방법이 있습니까?
Gopikrishna S

@GopikrishnaS- "* rc" 파일은 자바 스크립트, JSON, 일반 텍스트, XML, YAML 등 거의 모든 파일이 될 수 있으므로 파일을 구문 분석 하는 방법 은 전적으로 포함 된 내용에 따라 다릅니다.
adeneo

6

RC는

  • 명령 실행
  • 런타임 구성

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

'rc'접미사는 Unix의 조부모 인 CTSS로 돌아갑니다. "runcom"이라는 명령 스크립트 기능이 있습니다. 초기 유닉스는 CTSS runcom에 대한 찬사로 운영 체제의 부팅 스크립트 이름으로 'rc'를 사용했습니다.



@wyu 잘못된 URL을 참조하고 있습니다. Run_command대신 Run_commands. @rselvagenesh가 올바른 URL을 제공했습니다.
Bala


@wyu 알았어.
Bala
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.