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

相关推荐
Holin_浩霖几秒前
JavaScript 语言革命:ES6+ 现代编程范式深度解析与工程实践
前端
前端拿破轮6 分钟前
从0到1搭一个monorepo项目(一)
前端·javascript·git
m0_7414122411 分钟前
大文件上传与文件下载
前端
wu_jing_sheng012 分钟前
Python中使用HTTP 206状态码实现大文件下载的完整指南
开发语言·前端·python
90后的晨仔17 分钟前
Vue3项目全面部署指南:从构建到上线
前端·vue.js
小于小于091226 分钟前
npx 与 npm 区别
前端·npm·node.js
望获linux44 分钟前
【实时Linux实战系列】实时 Linux 在边缘计算网关中的应用
java·linux·服务器·前端·数据库·操作系统
qq_252924191 小时前
PHP 8.0+ 现代Web开发实战指南 引
android·前端·php
Jeled1 小时前
Android 本地存储方案深度解析:SharedPreferences、DataStore、MMKV 全面对比
android·前端·缓存·kotlin·android studio·android jetpack
Mintopia1 小时前
🎨 AIGC 内容过滤技术:当创作的洪流遇上理性的堤坝
前端·javascript·aigc