- tsxは使わないでください: node 22.7から.tsを直接実行できます
- dotenvは使わないでください: node 20からは--env-file, --env-file-if-existsを使用してください
- axiosは使わないでください: node, ブラウザともにfetchを使用してください
- npxを常用しないでください: npm scriptを使用してください。npxを使うのは1回限りのコマンドを実行するときだけにしてください
- typecheck, format, format:check, lint, testはnpm scriptにしてください
- 必要あればgenerate, build, devなどもnpm scriptにしてください
- package managerはpnpmを使用してください
- package.jsonのenginesフィールド, devEnginesでnode, pnpmのバージョンを指定してください
- nodeは24 (現在のLTS)を使用してください
- pnpmは11を使用してください
- package.jsonを直接編集するのではなく、package managerを使用してライブラリを追加してください
- npx @eai/editorconfigでeditorconfigを生成してください
- @tsconfig/strictestを入れてtsconfigで"@tsconfig/strictest/tsconfig.json"をextendしてください。中身を読んで重複する設定は削除してください
- nodeで直接動かすtsのtsconfigでは"erasableSyntaxOnly": trueにしてください
- oxlintとoxlint-config-presets, oxlint-tsgolintを入れてeslintRecommended, tsStrictTypeChecked, tsStylisticTypeCheckedをextendしてください
- oxfmtをいれてsortImports, sortPackageJsonを有効にしてください
- on pull_requestでtypecheck, lint, format:check, testをnpm-run-all2などで並列実行するciを必ず追加してください
- uses追加後はpinact run -uで全ての3rd party dependenciesを最新にしてください メジャーバージョンが更新されたら使い方も変わる可能性があるので必ずドキュメントを確認してください
- corepack enableでpnpmを有効にしてください
- nodeはcorepackで用意したpnpmがdevEnginesを読んでdownloadするのでsetup-nodeは不要です
- 以下の設定をベースに.githubの下にrenovate.jsonを作成してください
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:best-practices"],
"automerge": true,
"platformAutomerge": true,
"packageRules": [
{
"matchUpdateTypes": ["major"],
"automerge": false
}
]
}