네이버페이 코드 스타일 패키지를 쉽게 설치하고 설정할 수 있는 CLI 도구입니다.
pnpm v10+에서는 보안상의 이유로 postinstall 스크립트가 기본적으로 실행되지 않습니다. 이 CLI를 사용하면 패키지 설치와 설정 파일 생성을 한 번에 처리할 수 있습니다.
프로젝트 루트에서 실행합니다.
npx @naverpay/code-style-cli- 패키지 매니저를 자동으로 감지합니다. (npm, yarn, pnpm)
- 설치할 패키지를 선택합니다.
- 선택한 패키지가 설치되고 설정 파일이 자동으로 생성됩니다.
| 패키지 | 설정 파일 |
|---|---|
| @naverpay/eslint-config | - |
| @naverpay/eslint-plugin | - |
| @naverpay/prettier-config | .prettierrc |
| @naverpay/stylelint-config | stylelint.config.mjs |
| @naverpay/markdown-lint | .markdownlint.jsonc |
| @naverpay/editorconfig | .editorconfig |
| @naverpay/oxlint-config | .oxlintrc.json |
| @naverpay/biome-config | biome.json |
| oxfmt | .oxfmtrc.json |
eslint-config, eslint-plugin은 설정이 복잡하여 설정 파일을 자동 생성하지 않습니다.
CLI는 기본 설정 파일만 생성합니다. 추가 설정이 필요한 경우:
- 설정 변경: 생성된 설정 파일을 직접 수정하세요.
- CLI 명령어: 각 패키지 README의 "CLI" 섹션을 참고하세요.
- IDE 설정: 각 패키지 README의 "Integrating with IDE" 섹션을 참고하세요.
- 프로젝트 루트에
package.json이 있어야 합니다. - 이미 설정 파일이 존재하는 경우 덮어쓰지 않습니다.
oxfmt는 Prettier 호환 포매터로, Rust로 작성되어 빠른 속도를 제공합니다.
Note: oxfmt는 현재 alpha 단계입니다. VSCode Extension 지원도 experimental 상태입니다.
oxfmt는 현재 extends 옵션을 지원하지 않아 별도 config 패키지가 없습니다. CLI에서 네이버페이 권장 설정이 포함된 .oxfmtrc.json을 생성합니다.
필요에 따라 ignorePatterns를 추가합니다.
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"singleQuote": true,
"semi": false,
"useTabs": false,
"tabWidth": 4,
"endOfLine": "lf",
"bracketSpacing": false,
"arrowParens": "always",
"bracketSameLine": false,
"printWidth": 120,
"trailingComma": "all",
"ignorePatterns": ["dist", "pnpm-lock.yaml", ".github"]
}package.json에 스크립트를 추가하여 format 검사를 할 수 있습니다.
{
"scripts": {
"format": "oxfmt",
"format:check": "oxfmt --check"
}
}Warning: oxfmt의 VSCode 지원은 현재 experimental 단계입니다.
- oxc Extension을 설치합니다.
settings.json에 아래 설정을 추가합니다.
{
"oxc.enable": true,
"oxc.fmt.experimental": true,
"editor.defaultFormatter": "oxc.oxc-vscode",
"editor.formatOnSave": true,
"[typescript]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
}
}oxc-intellij-plugin (v0.0.21 이상)을 설치하여 사용할 수 있습니다.