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

相关推荐
GISer_Jing1 分钟前
阿里云前端Nginx部署完,用ip地址访问却总访问不到,为什么?检查安全组是否设置u为Http(80)!
前端·nginx·阿里云
赵大仁5 小时前
微前端统一状态树实现方案
前端·前端框架
阿珊和她的猫7 小时前
钩子函数和参数:Vue组件生命周期中的自定义逻辑
前端·javascript·vue.js
勘察加熊人7 小时前
vue展示graphviz和dot流程图
前端·vue.js·流程图
软件2057 小时前
【登录流程图】
java·前端·流程图
2501_915373888 小时前
Electron 从零开始:构建你的第一个桌面应用
前端·javascript·electron
贩卖黄昏的熊9 小时前
JavaScript 笔记 --- part8 --- JS进阶 (part3)
前端·javascript·笔记
CodeCipher9 小时前
Java后端程序员学习前端之CSS
前端·css·学习
卡戎-caryon11 小时前
【项目实践】boost 搜索引擎
linux·前端·网络·搜索引擎·boost·jieba·cpp-http
别催小唐敲代码12 小时前
解决跨域的4种方法
java·服务器·前端·json