Vue 学习笔记 4-项目开发规范及插件
一、安装插件
开发必备:
- vscode-icons:编辑器图标插件;
- Vue Language Features (Volar):在功能上
volar
和vetur
是一致的,都是针对vue
的插件(可以这样说,volar
是vue3
的配套,vetur
是vue2
的配套); - DotENV:.env 文件语法高亮;
- ESLint:件化的 javascript 代码检测工具;
- Stylelint:一个强大、先进的 CSS 代码检查器,可以帮助你规避 CSS 代码中的错误并保持一致的编码风格
- Prettier:代码格式化工具;
- EditorConfig for VS Code:项目约束;
- project-tree:生成项目树结构;
其他推荐:
- Chinese (Simplified):简体翻译插件;
- any-rule:正则表达式插件;
- 会了吧:点击源码文件,会自动分析所有包含的单词,不在 已掌握单词列表 中的单词会自动添加到 陌生单词 列表;
- GitLens:多人协作开发时,可快速查找 git 提交记录。点击任意一行代码,代码会有个小尾巴,显示本行代码的提交记录。
- Git History:提交记录(Alt H 查看,安装了 GitLens 可以不用安装);
- Doxygen Documentation:生成代码文件头和注释;
二、基本配置
2.1 Yarn
Yarn 自动清除功能,实现每一次
install
之后、add
之后、yarn autoclean --force
之后。从程序包依赖项中清除并删除不必要的文件。
2.1.1 配置
代码语言:javascript复制yarn autoclean --init
执行玩命令之后,Yarn 就会自动在根目录下创建一个.yarnclean
文件。这样就可以了。
2.2 Editor
- EditorConfig 官网
- EditorConfig 完整配置属性说明表
在项目根路径新建文件 .editorconfig
代码语言:javascript复制在项目中我们最好是使用统一行尾符(建议不管还是 mac 还是 windows 都使用 lf ),但是按上面的配置,我们发现保存的时候无法将 crlf 行尾符转换成 lf 行尾符,当然我们可以直接点击 vscode 的右下角切换行尾符,但终究是有点麻烦,这时使用 .editorconfig 就很有必要了。
# 告诉EditorConfig插件,这是根文件,不用继续往上查找。
root = true
# 匹配全部文件。
[*]
# 使用`utf-8`字符集。
charset=utf-8
# 结尾换行符,可选`lf`、`cr`、`crlf`。
end_of_line=lf
# 在文件结尾插入新行
insert_final_newline=true
# 缩进的样式为空格。
indent_style=space
# 缩进为2
indent_size=2
# 行最大长度为100
max_line_length = 100
# 匹配以`.yml`、`.yaml`、`.json`结尾的文件
[*.{yml,yaml,json}]
indent_style = space
indent_size = 2
# 匹配以`.md`结尾的文件
[*.md]
# 修剪尾随空格
trim_trailing_whitespace = false
[Makefile]
indent_style = tab
在项目根目录看有没有 .vscode
文件夹,若没有,就新建。新建 settings.json
文件:
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"editor.formatOnSave": true
}
一键安装项目推荐的 vscode 插件,新建 extensions.json
文件:
{
"recommendations": [
"vue.volar",
"ms-ceintl.vscode-language-pack-zh-hans",
"mikestead.dotenv",
"donjayamanne.githistory",
"lokalise.i18n-ally",
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"zhucy.project-tree",
"eamodio.gitlens",
"ms-vscode.powershell",
"vscode-icons-team.vscode-icons"
]
}
团队其他成员拉代码后, 打开 vscode, 依次点击 1,2,3, 会自动输入@recommended, 工作区推荐的插件就是 .vscode/extensions.json
文件推荐的。
2.3 Git
提交以上文件到 git 代码仓库,在 .gitignore
文件中配置:
node_modules
.DS_Store
dist
.cache
.turbo
.local
# local env files
.env.local
.env.*.local
.eslintcache
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
# .vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
package-lock.json
pnpm-lock.yaml
.history
三、插件配置
3.1 TypeScript
3.1.1 安装
代码语言:javascript复制yarn add -D typescript
- typescript
3.1.2 配置
根目录下新建 TypeScript 的配置文件:tsconfig.json
文件
{
"compilerOptions": {
// 指定ECMAScript目标版本,esnext为最新版本
"target": "esnext",
// 指定生成哪个模块系统代码,esnext为最新版本
"module": "esnext",
// 决定如何处理模块
"moduleResolution": "node",
// 启用所有严格类型检查选项
"strict": true,
// 禁止对同一个文件的不一致的引用
"forceConsistentCasingInFileNames": true,
// 允许从没有设置默认导出的模块中默认导入这并不影响代码的输出,仅为了类型检查
"allowSyntheticDefaultImports": true,
// 禁用函数参数双向协变检查
"strictFunctionTypes": false,
// 在 .tsx文件里支持JSX
"jsx": "preserve",
// 解析非相对模块名的基准目录查看 模块解析文档了解详情
"baseUrl": ".",
// 允许编译javascript文件
"allowJs": true,
// 生成相应的 .map文件
"sourceMap": true,
"esModuleInterop": true,
"resolveJsonModule": true,
// 若有未使用的局部变量则抛错
"noUnusedLocals": true,
// 若有未使用的参数则抛错
"noUnusedParameters": true,
// 启用实验性的ES装饰器
"experimentalDecorators": true,
// 编译过程中需要引入的库文件的列表
"lib": ["dom", "esnext"],
// 要包含的类型声明文件名列表
"types": ["vite/client"],
// 要包含的类型声明文件路径列表
"typeRoots": ["./node_modules/@types/", "./types"],
"incremental": true,
// 在表达式和声明上有隐含的 any类型时报错
"noImplicitAny": false,
// 忽略所有的声明文件( *.d.ts)的类型检查
"skipLibCheck": true,
// 模块名到基于 baseUrl的路径映射的列表查看 模块解析文档了解详情
"paths": {
"/@/*": ["src/*"],
"/#/*": ["types/*"]
}
},
// 指定一个匹配列表(属于自动指定该路径下的所有ts相关文件)
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.tsx",
"src/**/*.vue",
"types/**/*.d.ts",
"types/**/*.ts",
"mock/**/*.ts"
],
// 指定一个排除列表(include的反向操作)
"exclude": ["node_modules", "dist", "**/*.js"]
}
3.2 ESLint
ESLint
简单的来说就是去判断你的JS
代码写的格式对不对的一个依赖。没有它你的代码也能运行,有了它你的代码可以写的更漂亮。ESLint
还支持插件,第三方框架会基于ESLint
写出自己的代码检查插件。比如Vue3
对应eslint-plugin-vue
。
3.2.1 安装
代码语言:javascript复制yarn add -D eslint eslint-define-config eslint-plugin-vue vue-eslint-parser @typescript-eslint/eslint-plugin @typescript-eslint/parser
- eslint:判断代码是否符合规则;
- eslint-define-config:大部分开发者使用的默认规则;
- eslint-plugin-vue:
vue
官方开发的ESLint
插件; - vue-eslint-parser:允许对.vue 文件的