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

相关推荐
炫饭第一名2 小时前
速通Canvas指北🦮——基础入门篇
前端·javascript·程序员
王晓枫3 小时前
flutter接入三方库运行报错:Error running pod install
前端·flutter
符方昊3 小时前
React 19 对比 React 16 新特性解析
前端·react.js
ssshooter3 小时前
又被 Safari 差异坑了:textContent 拿到的值居然没换行?
前端
曲折3 小时前
Cesium-气象要素PNG色斑图叠加
前端·cesium
Forever7_3 小时前
Electron 淘汰!新的桌面端框架 更强大、更轻量化
前端·vue.js
Angelial3 小时前
Vue3 嵌套路由 KeepAlive:动态缓存与反向配置方案
前端·vue.js
jiayu4 小时前
Angular学习笔记24:Angular 响应式表单 FormArray 与 FormGroup 相互嵌套
前端
jiayu4 小时前
Angular6学习笔记13:HTTP(3)
前端
小码哥_常4 小时前
Kotlin抽象类与接口:相爱相杀的编程“CP”
前端