速度更快,更节省磁盘
npm install pnpm
pnpm create vue
或者使用 npm init vue@latestpnpm install
ESLint 用于代码质量检测;Prettier 用于代码格式化;配合使用
在 .eslintrc.cjs 文件中的 module.exports 对象中添加:
,
rules: {
'prettier/prettier': [
'warn',
{
singleQuote: true, //单引号
semi: false, //无分号
printwidth: 80, //每行宽度至多80字符
trailingComma: 'none', //不加对象|数组最后逗号
endofLine: 'auto' //换行符号不限制(win mac不致)
}
],
'vue/multi-word-component-names': [
'warn',
{
ignores: ['index'] // vue组件名称多单词组成(忽略index.vue)
}
],
'vue/no-setup-props-destructure': ['off'], //关闭props解构的校验
//添加未定义变量错误提示, [email protected] 关闭
'no-undef': 'error'
}
a. 禁用 prettier 插件,安装 ESLint 插件
b. 在设置中添加:
//ESlint插件 + Vscode配置 实现自动格式化修复
"editor.codeActionsOnSave": {
"source.fixAll": true
},
//关闭保存自动格式化
"editor.formatOnSave": false,
a. git 提交代码前会帮助我们进行校验,并指出错误的代码
b. 执行git init
初始化 git
c. 初始化 husky 工具配置,执行pnpm dlx husky-init && pnpm install
a. pnpm lint 命令是全局效验,速度太慢,所以配置暂存区,只校验暂存区
b. 安装 lint-staged 包,执行pnpm i lint-staged -D
c. package.json 添加 lint-staged 命令:
,
"lint-staged": {
"*.{js,ts,vue}":[
"eslint --fix"
]
}
d. 在 scripts 中添加:
"lint-staged": "lint-staged"
e. husky/pre-commit 文件中的 npm test 修改为:pnpm lint-staged
a. 安装命令:
pnpm install axios
b. utils 包下面的 request.js 文件:
import axion from 'axios'
//为了导入token
import { useUserStore } from '@/stores'
import { ElMessage } from 'element-plus'
import router from '@/router'//改成自己配置的router
//基础地址:如:
const baseURL = 'http://xuantianling.net'
const instance = axion.create({
//基础地址,超时时间
baseURL,
timeout: 10000
})
//请求拦截器
instance.interceptors.request.use(
(config) => {
//携带 token
//const userStore = useUserStore()
//if (userStore.token) {
//判断是否有token
//有token的话每次请求都在请求头上添加上
//config.headers.Authorization = userStore.token
//}
return config
},
(err) => Promise.reject(err)
)
//响应拦截器
instance.interceptors.response.use(
(res) => {
//if (res.data.code == 0) {
//根据后端传送的数据判断是否响应成功
//响应成功,放行
//return res
//}
//响应失败
//ElMessage.error(res.data.message || '服务异常')
return Promise.reject(res.data)
},
(err) => {
//处理401错误,权限不足||token过期
//if (err.response?.state === 401) {
//router.push('/login')
//}
//错误的默认情况
//ElMessage.error(err.response.data.message || '服务异常')
Promise.reject(err)
}
)
export default instance
export { baseURL }
a. 创建请求文件
import instance from '@/utils/request'
export const userLoginService = (user) => request.post('/api/login', user)
b. 在 main.js 中进行测试
userLoginService(user).then(res => {
// 获取用户登录返回的信息
console.log(res)
})
a. 执行命令:
pnpm install element-plus
b. 按需导入:npm install -D unplugin-vue-components unplugin-auto-import
c. 在 vite.config.ts 文件中添加:
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig({
// ...
plugins: [
// ...
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
],
})
a. 安装插件:pinia-plugin-persistedstate,命令:
pnpm install pinia-plugin-persistedstate
b. 开始持久化:在对应模块第三个参数传入 persist,设置值为 true
a. 很大几率是要使用 .scss 文件
b. 安装命令:pnpm add sass -D
插件 path in tellisense 配置一下就有路径提示了