A blog - Initialize
March 30, 2025
准备
- code
一、协同开发
Node.js 版本
在根目录创建.nvmrc
文件,锁定 Node.js
版本
已複製!v20.18.0
Eslint
-
参考Next.js Eslint配置 Eslint
-
禁止打包校验 在
next.config.ts
中添加以下代码
已複製!import type { NextConfig } from 'next' const nextConfig: NextConfig = { eslint: { // Warning: This allows production builds to successfully complete even if // your project has ESLint errors. ignoreDuringBuilds: true, }, } export default nextConfig
Prettier
下载下面的依赖
已複製!npm install --save-dev --save-exact prettier npm install --save-dev eslint-config-prettier
在eslint.config.mjs
中加上prettier
已複製!const eslintConfig = [ ...compat.extends('next/core-web-vitals', 'next/typescript', 'prettier'), ]
在根目录创建.prettierignore
文件,忽略配置的文件,不进行校验,配置的内容和.eslintignore
一致
.vscode
- 添加
settings.json
已複製!{ "editor.formatOnSave": true, "editor.formatOnSaveMode": "file", "editor.defaultFormatter": "esbenp.prettier-vscode", "[typescript]": { "editor.formatOnSave": true, "editor.formatOnSaveMode": "file", "editor.defaultFormatter": "esbenp.prettier-vscode" } }
- 添加
extensions.json
已複製!{ "recommendations": [ "dbaeumer.vscode-eslint", "bradlc.vscode-tailwindcss", "esbenp.prettier-vscode" ] }
lint-stage
- 下载
已複製!npm install --save-dev lint-staged # requires further setup
参考Running lint on staged files和Lint-staged Document
配置.lintstagedrc.js
已複製!import path from 'path' const buildEslintCommand = (filenames) => `next lint --fix --file ${filenames .map((f) => path.relative(process.cwd(), f)) .join(' --file ')}` module.exports = { '*.{js,jsx,ts,tsx}': [buildEslintCommand], '*.{js,jsx,ts,tsx,md,html,css}': 'prettier --write', }
Husky
- 下载
已複製!npm install --save-dev husky
- 初始化
已複製!npx husky init
- 写入命令
已複製!echo "npx lint-staged" > .husky/pre-commit
注意,文件的格式要为
UTF-8
Commitlint
- 下载
已複製!npm install --save-dev @commitlint/{cli,config-conventional}
- 配置文件
已複製!echo "export default { extends: ['@commitlint/config-conventional'] }" > commitlint.config.js
- 添加
Husky
-commit-msg
Hook
已複製!# Add commit message linting to commit-msg hook echo "npx --no -- commitlint --config commitlint.config.js --edit \$1" > .husky/commit-msg # Windows users should use ` to escape dollar signs echo "npx --no commitlint --config commitlint.config.js --edit `$1" > .husky/commit-msg