|
| 1 | +# @naverpay/code-style-cli |
| 2 | + |
| 3 | +네이버페이 코드 스타일 패키지를 쉽게 설치하고 설정할 수 있는 CLI 도구입니다. |
| 4 | + |
| 5 | +> pnpm v10+에서는 보안상의 이유로 postinstall 스크립트가 기본적으로 실행되지 않습니다. 이 CLI를 사용하면 패키지 설치와 설정 파일 생성을 한 번에 처리할 수 있습니다. |
| 6 | +
|
| 7 | +## 사용 방법 |
| 8 | + |
| 9 | +프로젝트 루트에서 실행합니다. |
| 10 | + |
| 11 | +```bash |
| 12 | +npx @naverpay/code-style-cli |
| 13 | +``` |
| 14 | + |
| 15 | +1. 패키지 매니저를 자동으로 감지합니다. (npm, yarn, pnpm) |
| 16 | +2. 설치할 패키지를 선택합니다. |
| 17 | +3. 선택한 패키지가 설치되고 설정 파일이 자동으로 생성됩니다. |
| 18 | + |
| 19 | +## 지원 패키지 |
| 20 | + |
| 21 | +| 패키지 | 설정 파일 | |
| 22 | +|--------|-----------| |
| 23 | +| [@naverpay/eslint-config](../eslint-config/README.md) | - | |
| 24 | +| [@naverpay/eslint-plugin](../eslint-plugin/README.md) | - | |
| 25 | +| [@naverpay/prettier-config](../prettier-config/README.md) | `.prettierrc` | |
| 26 | +| [@naverpay/stylelint-config](../stylelint-config/README.md) | `stylelint.config.mjs` | |
| 27 | +| [@naverpay/markdown-lint](../markdown-lint/README.md) | `.markdownlint.jsonc` | |
| 28 | +| [@naverpay/editorconfig](../editorconfig/README.md) | `.editorconfig` | |
| 29 | +| [@naverpay/oxlint-config](../oxlint-config/README.md) | `.oxlintrc.json` | |
| 30 | +| [@naverpay/biome-config](../biome-config/README.md) | `biome.json` | |
| 31 | +| [oxfmt](#oxfmt-가이드) | `.oxfmtrc.json` | |
| 32 | + |
| 33 | +> eslint-config, eslint-plugin은 설정이 복잡하여 설정 파일을 자동 생성하지 않습니다. |
| 34 | +
|
| 35 | +## 설치 후 설정 |
| 36 | + |
| 37 | +CLI는 기본 설정 파일만 생성합니다. 추가 설정이 필요한 경우: |
| 38 | + |
| 39 | +- **설정 변경**: 생성된 설정 파일을 직접 수정하세요. |
| 40 | +- **CLI 명령어**: 각 패키지 README의 "CLI" 섹션을 참고하세요. |
| 41 | +- **IDE 설정**: 각 패키지 README의 "Integrating with IDE" 섹션을 참고하세요. |
| 42 | + |
| 43 | +## 주의 사항 |
| 44 | + |
| 45 | +- 프로젝트 루트에 `package.json`이 있어야 합니다. |
| 46 | +- 이미 설정 파일이 존재하는 경우 덮어쓰지 않습니다. |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +## oxfmt 가이드 |
| 51 | + |
| 52 | +> oxfmt는 Prettier 호환 포매터로, Rust로 작성되어 빠른 속도를 제공합니다. |
| 53 | +> |
| 54 | +> **Note:** oxfmt는 현재 **alpha** 단계입니다. VSCode Extension 지원도 experimental 상태입니다. |
| 55 | +
|
| 56 | +oxfmt는 현재 `extends` 옵션을 지원하지 않아 별도 config 패키지가 없습니다. CLI에서 네이버페이 권장 설정이 포함된 `.oxfmtrc.json`을 생성합니다. |
| 57 | + |
| 58 | +### 설정 |
| 59 | + |
| 60 | +필요에 따라 `ignorePatterns`를 추가합니다. |
| 61 | + |
| 62 | +```json |
| 63 | +{ |
| 64 | + "$schema": "./node_modules/oxfmt/configuration_schema.json", |
| 65 | + "singleQuote": true, |
| 66 | + "semi": false, |
| 67 | + "useTabs": false, |
| 68 | + "tabWidth": 4, |
| 69 | + "endOfLine": "lf", |
| 70 | + "bracketSpacing": false, |
| 71 | + "arrowParens": "always", |
| 72 | + "bracketSameLine": false, |
| 73 | + "printWidth": 120, |
| 74 | + "trailingComma": "all", |
| 75 | + "ignorePatterns": ["dist", "pnpm-lock.yaml", ".github"] |
| 76 | +} |
| 77 | +``` |
| 78 | + |
| 79 | +### CLI |
| 80 | + |
| 81 | +package.json에 스크립트를 추가하여 format 검사를 할 수 있습니다. |
| 82 | + |
| 83 | +```json |
| 84 | +{ |
| 85 | + "scripts": { |
| 86 | + "format": "oxfmt", |
| 87 | + "format:check": "oxfmt --check" |
| 88 | + } |
| 89 | +} |
| 90 | +``` |
| 91 | + |
| 92 | +### Integrating with IDE |
| 93 | + |
| 94 | +#### VSCode |
| 95 | + |
| 96 | +> **Warning:** oxfmt의 VSCode 지원은 현재 **experimental** 단계입니다. |
| 97 | +
|
| 98 | +1. [oxc Extension](https://marketplace.visualstudio.com/items?itemName=oxc.oxc-vscode)을 설치합니다. |
| 99 | +2. `settings.json`에 아래 설정을 추가합니다. |
| 100 | + |
| 101 | +```json |
| 102 | +{ |
| 103 | + "oxc.enable": true, |
| 104 | + "oxc.fmt.experimental": true, |
| 105 | + "editor.defaultFormatter": "oxc.oxc-vscode", |
| 106 | + "editor.formatOnSave": true, |
| 107 | + "[typescript]": { |
| 108 | + "editor.defaultFormatter": "oxc.oxc-vscode" |
| 109 | + }, |
| 110 | + "[javascript]": { |
| 111 | + "editor.defaultFormatter": "oxc.oxc-vscode" |
| 112 | + } |
| 113 | +} |
| 114 | +``` |
| 115 | + |
| 116 | +#### WebStorm |
| 117 | + |
| 118 | +[oxc-intellij-plugin](https://plugins.jetbrains.com/plugin/27061-oxc) (v0.0.21 이상)을 설치하여 사용할 수 있습니다. |
0 commit comments