项目搭建
eslint
Section titled “eslint”eslint是一款代码规范估计,用于规范代码格式
安装eslint
Section titled “安装eslint”npm init @eslint/config
husky是一款git的hook工具, 可以更方便的设置git hook husky官网
安装husky
Section titled “安装husky”npm install --save-dev husky
pnpm add --save-dev husky
yarn add --dev husky# Add pinst ONLY if your package is not privateyarn add --dev pinst
bun add --dev husky
配置husky
Section titled “配置husky”npx husky init
pnpm exec husky init
# 不支持
bunx husky init
commitlint
Section titled “commitlint”commitlint 是一个提交信息规范的插件 commitlint 官网
commitlint安装
Section titled “commitlint安装”npm install --save-dev @commitlint/config-conventional @commitlint/cli
pnpm add --save-dev @commitlint/config-conventional @commitlint/cli
yarn add --dev @commitlint/config-conventional @commitlint/cli
bun add --dev @commitlint/config-conventional @commitlint/cli
commitlint配置
Section titled “commitlint配置”在项目根目录下创建配置文件commitlint.config.mjs
export default { extends: ["@commitlint/config-conventional"],};
添加钩子
cat > .husky/commit-msg << 'EOF'npx --no -- commitlint --edit ${1}EOF
安装prompt-cli
Section titled “安装prompt-cli”prompt-cli 可以根据 commitlint.config快速生成提交信息
npm install --save-dev @commitlint/prompt-cli
pnpm add --save-dev @commitlint/prompt-cli
yarn add --dev @commitlint/prompt-cli
bun add --dev @commitlint/prompt-cli
prompt-cli使用
Section titled “prompt-cli使用”npx commit
pnpm exec commit
# 不支持
bunx commit
可以将commit添加到package.json
{ "scripts": { "commit": "commit" }}
lint-staged
Section titled “lint-staged”lint-staged是针对暂存区的git文件运行linter的工具 lint-staged官网
lint-staged安装
Section titled “lint-staged安装”npm install --save-dev lint-staged
pnpm add --save-dev lint-staged
yarn add --dev lint-staged
bun add --dev lint-staged
lint-staged配置
Section titled “lint-staged配置”lint-staged配置可以放在package.json
{ "lint-staged": { "*.{js,jsx,ts,tsx,vue}": [ // 需要检查的文件 "prettier --write", // 使用prettier格式化 "eslint --fix", // eslint 检查代码规范 ], },}
添加钩子
cat > .husky/pre-commit << EOFnpx lint-stagedEOF
prettier
Section titled “prettier”prettier是一款支持多语言的代码格式化工具 prettier官网
prettier 安装
Section titled “prettier 安装”npm install --save-dev prettier
pnpm add --save-dev prettier
yarn add --dev --exact prettier
bun add --dev prettier
prettier 配置
Section titled “prettier 配置”创建.prettierignore
文件, 排除运行prettier的目录
# Ignore artifacts:buildcoverage
创建配置文件prettier.config.mjs
// prettier.config.js, .prettierrc.js, prettier.config.mjs, or .prettierrc.mjs
/** @type {import("prettier").Config} */const config = { trailingComma: "es5", tabWidth: 2, semi: false, singleQuote: true,};
export default config;
兼容eslint
Section titled “兼容eslint”安装兼容插件
npm install --save-dev eslint-config-prettier eslint-plugin-prettier
pnpm add --save-dev eslint-config-prettier eslint-plugin-prettier
yarn add --dev eslint-config-prettier eslint-plugin-prettier
bun add --dev eslint-config-prettier eslint-plugin-prettier
修改eslint配置文件
{ "extends": ["prettier"], "plugins": ["prettier"]}
stylelint
Section titled “stylelint”stylelint 安装
Section titled “stylelint 安装”stylelint是对css等样式表进行检查的工具stylelint官网
npm init stylelint
支持scss
Section titled “支持scss”npm install --save-dev stylelint stylelint-config-standard-scss
pnpm add --save-dev stylelint stylelint-config-standard-scss
yarn add --dev stylelint stylelint-config-standard-scss
bun add --dev stylelint stylelint-config-standard-scss
修改stylelint配置文件
/** @type {import('stylelint').Config} */export default { extends: "stylelint-config-standard-scss",};
设置stylelint顺序插件
Section titled “设置stylelint顺序插件”npm install --save-dev stylelint-order
pnpm add --save-dev stylelint-order
yarn add --dev stylelint-order
bun add --dev stylelint-order
修改stylelint配置文件
/** @type {import('stylelint').Config} */export default { extends: ["stylelint-config-standard"], plugins: ["stylelint-order"], rules: { "order/properties-alphabetical-order": true, },};
设置stylelint支持vue
Section titled “设置stylelint支持vue”npm install --save-dev postcss-html stylelint-config-html
pnpm add --save-dev postcss-html stylelint-config-html
yarn add --dev postcss-html stylelint-config-html
bun add --dev postcss-html stylelint-config-html
修改stylelint配置文件
/** @type {import('stylelint').Config} */export default { extends: ["stylelint-config-html"],};
Tailwind CSS
Section titled “Tailwind CSS”Tailwind CSS是一款现代css库, 通过类名引用样式 Tailwind CSS的安装