5.1 vite-vue的学习

1.vite配置vue

bash 复制代码
import { defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
// import { createVuePlugin} from 'vite-plugin-vue2'
export default defineConfig({
    plugins:[
   // createVuePlugin(), // 可以引入vue2版本
    vue(),// 可以引入vue结尾的文件
    vueJsx() // 可以引入jsx结尾的文件
    ],
    resolve:{
      alias:{
      "@src" :"/src" // /表示从根目录
      }
    }
})

2.vite 配置react

bash 复制代码
import { defineConfig} from 'vite'
import reactRefresh from '@vitejs/plugin-react-refresh'
export default defineConfig({
    plugins:[
     reactRefresh(), // 
    ],
    resolve:{
      alias:{
      "@src" :"/src" // /表示从根目录
      }
    }
})

3.css-modules

  1. test.module.css并使用
css 复制代码
.moduleClass{
color:red
}
  1. 引入test.module.css并使用

import classes from '@src/test.module.css

<div :class="classes.moduleClass"> </div>

4. 直接支持ts语法

命令行校验 vue-tsc --noEmit && tsc --noEmit && vite build

5. css pre-processors

只需要引入对应的less或者scss的loader文件即可

less 复制代码
@bgColor:blue
.moduleClass{
color:red;
background-color:@bgColor
}

5.isolatedModules

在tsconfig.json的compilerOptions下设置 isolatedModules:true

  1. Exports Of Non-Value Identifiers报错 不开启运行时才会报错
ts 复制代码
// types
export interface A{
 name:string,
 age:number
}
ts 复制代码
import {A} from './types';
export const a:A= {
name:'zhang san',
age: 18
}
export {A}
  1. Non-Moudle Files

每个文件都需 export 输出成一个模块

  1. References to const enum members
ts 复制代码
// types
export interface A{
name:string,
age:number
}
ts 复制代码
import {A} from './types';

declare const enum Num {
  First = 0, 
  Second =1,
 }
export const a:A= {
name:'zhang san',
age: Num.First // 开启后报错
}
export {A}

6. client types 中import.meta报错

  • Asset imports
  • env
  • HMR API

在tsconfig.json的compilerOptions下设置 types:["vite/client"]

7.处理静态资源的方法

  • url
js 复制代码
import test from './test?url'
console.log(test) // /src/test.ts
  • raw
js 复制代码
import test from './test?raw'
console.log(test) // 文本以字符串形式打印出来
  • worker/worker inline

8.eslint + pritter + husky

pnpm i eslint-config-standard eslint-plugin-import eslint-plugin-promise eslint-plugin-node -D

js 复制代码
//.eslintrc.js
module.exports={
extends:'standard'
}

eslint 插件和pritter插件
'lint': "eslint --ext js src/"

js 复制代码
//.prettierrc
{
'semi': false,
'singleQuote':true
}

pnpm i husky npx husky install npx husky add .husky/pre-commit "npm run lint"

9.环境变量

import.meta.env

  • MODE
  • BASE_URL
  • PROD
  • DEV
  • SSR

.env .env.development .env.development.local .env.production

相关推荐
@大迁世界8 小时前
Firefox 本地模式:localhost 再见了 ?
前端·架构
米米商聊10 小时前
同名附件为什么被 Map 覆盖?重复键与一对多索引
前端·javascript
echome88811 小时前
Python 异常处理:try、else、finally 的正确搭配
开发语言·前端·python·异常处理·编程技巧
时间的情敌11 小时前
OpenLayers 实战|Vue3 + OpenLayers 完整工程案例(加载天地图、要素、弹窗、绘制、WFS)
前端·openlayers
陈随易11 小时前
下载神器!Motrix 停更三年后重写回归
前端·后端·程序员
前端的日常12 小时前
一个人+AI做情侣食谱小程序,0 费用的服务器
前端·后端
计算机魔术师12 小时前
谷歌搜索广告踩刹车,AI广告成为救命稻草
前端
总要学点什么12 小时前
第81篇:数据可视化-PM2.5分布——让圆点的胖瘦替每座城市报出浓度
前端·信息可视化·echarts·cesium·空间分析
IT_陈寒12 小时前
Vue的v-for里用了个临时变量,页面直接挂了
前端·人工智能·后端
hunter_07613 小时前
一次 iOS 真机签名 409 的完整排查:证书、设备、描述文件为什么总是"对不上"
前端