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 filesLint-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

参考Husky Document

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

参考Commitlint Document

References