Config Like a Pro: Streamlining Your JavaScript Project Setup with RC Files

MNIII
5 min readOct 12, 2023

--

RC 파일은 런타임 구성(Runtime Configuration)으로 JavaScript 프로젝트에서 사용 되는 구성 파일들 중 하나이다. RC 파일은 프로젝트의 동작 방식을 제어하고 사용자 또는 개발자의 설정을 정의하는 데 사용된다. 작성 방식은 주로 JSON, YAML 형식으로 작성되고 파일 확장자는 관련 도구나 프레임워크에 따라 다르다.

RC 파일 필요성

프로젝트의 일관성을 유지하기 위해 모든 개발자가 동일한 구성을 사용할 수 있도록 도와주고, 다양한 환경 예를 들어 개발 / 테스트 / 프로덕션 환경에 따라 프로젝트의 동작을 쉽게 변경할 수 있으며, 코드 스타일 가이드라인과 린팅 규칙을 정의함으로써 프로젝트의 코드 품질을 유지하는데 도움을 준다.

RC 파일 종류

이 설정 파일들은 프로젝트의 루트 디렉토리에 위치 한다. 일반적으로 JSON 또는 YAML 형식으로 작성 되며 간략한 설명과 예제 코드는 다음과 같다.

.eslintrc

  • ESLint 설정을 저장한다.
  • 코드 스타일, 문법, 오류를 검사하는 데 사용된다.
  • Configure ESLint
// .eslintrc.json

{
"plugins": [
"plugin1"
],
"rules": {
"eqeqeq": "off",
"curly": "error",
"quotes": ["error", "double"],
"plugin1/rule1": "error"
}
}

.babelrc

  • Babel 설정을 저장한다.
  • JavaScript 코드를 변환하고 다양한 브라우저에서 호환되도록 해준다.
  • Config Options
// .babelrc.json

{
"presets": ["@babel/preset-env"],
"plugins": ["@babel/plugin-transform-runtime"]
}

.prettierrc

  • Prettier 설정을 저장한다.
  • 코드 서식을 일관되게 유지하도록 도와준다.
  • Configuration File
// .prettierrc.json

{
"trailingComma": "es5",
"tabWidth": 4,
"semi": false,
"singleQuote": true
}

.stylelintrc

  • Stylelint의 설정을 저장한다.
  • CSS 또는 SCSS 의 스타일과 문법을 검사하는 데 사용된다.
  • Configuring | Stylelint
// .stylelintrc.json

{
"extends": "stylelint-config-standard",
"rules": {
"alpha-value-notation": "number",
"selector-class-pattern": null
}
}

.npmrc

  • npm의 설정을 저장한다.
  • 패키지 관리와 관련된 설정을 지정한다.
  • Configuring npm
// .npmrc

@myorg:registry=https://somewhere-else.com/myorg
@another:registry=https://somewhere-else.com/another

.yarnrc

  • yarn의 설정을 저장한다.
  • 패키지 관리와 관련된 설정을 지정한다.
  • yarn Config
// .yarnrc

"@myorg:registry" "https://somewhere-else.com/myorg"
"@another:registry" "https://somewhere-else.com/another"

.nvmrc

  • Node.js 버전을 관리하고 다양한 환경에서 일관성을 보장한다.
  • Node Version Manager 가 설정된 Node.js 버전을 사용하게 된다.
  • nvm-sh/nvm
// .nvmrc

14.17.0

.huskyrc

// .huskyrc.json

{
"hooks": {
"pre-commit": "lint-staged"
}
}

.browserslistrc

  • 프로젝트에서 지원하려는 브라우저의 버전을 지정할 수 있다.
  • Autoprefixer, Babel, PostCSS 와 같은 여러 Front-End 도구와 함께 동작 한다.
  • Browserslist
// .browserslistrc

> 1%
last 2 versions
not dead

.hintrc

  • webhint라는 웹 최적화 도구의 설정을 저장하고 구성하는 데 사용된다.
  • 힌트, 연결자, 포맷터, 파서 등의 설정을 지정하고 관리할 수 있다.
  • Configure webhint
// .hintrc

{
"connector": {
"name": "connectorName"
},
"formatters": ["formatterName"],
"parsers": ["parserName"],
"hints": {
"hint1": "error",
"hint2": "warning",
"hint3": "off"
},
"hintsTimeout": 120000
}

이러한 설정 파일들은 프로젝트 설정을 쉽게 관리 가능하게 하고, 팀 프로젝트에서 일관된 개발 환경을 유지할 수 있는 유연성을 제공 할 수 있다.

--

--