Vue 项目工程化规范
使用 vite 创建项目
npm init vite@latest
git init
EditorConfig
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
max_line_length = off
trim_trailing_whitespace = false
Prettier
npm install prettier -D
新建 .prettierrc
{
"useTabs": false,
"tabWidth": 2,
"singleQuote": true,
"trailingComma": "none",
"semi": false
}
新建 .prettierignore
dist
node_modules
public
ESLint
npm install eslint -D
npx eslint --init
Where does your code run? -- browser, node
Husky & lint-staged
npm install husky lint-staged -D
npx husky init
echo "npm run lint" > .husky/pre-commit
"scripts": {
"lint": "lint-staged"
},
"lint-staged": {
"src/*.{js,ts,jsx,tsx,vue}": [
"node_modules/.bin/prettier --write .",
"node_modules/.bin/eslint --fix .",
"git add ."
],
"src/*.{css,scss,less,json,html,md}": [
"node_modules/.bin/prettier --write .",
"git add ."
]
}
Commitizen
npm install commitizen -D
npx commitizen init cz-conventional-changelog --save-dev --save-exact
修改 package.json
"scripts": {
"commit": "cz"
}
Commitlint
npm install @commitlint/config-conventional @commitlint/cli -D
新建 commitlint.config.cjs
module.exports = {
extends: ['@commitlint/config-conventional']
}
echo "npx --no-install commitlint --edit $1" > .husky/commit-msg
jsconfig.json / tsconfig.json
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": ["dist", "node_modules", "public"]
}
TypeScript 项目配置
如果是 TypeScript 项目,修改一下 .eslintrc.cjs
parser: 'vue-eslint-parser',
parserOptions: {
ecmaVersion: 'latest',
parser: '@typescript-eslint/parser',
sourceType: 'module'
},