vite构建vue3踩坑(路由params传参失效、tailwindcss失效等问题记录)

vite创建vue3

npm create vue@latest

构建时自行选择ts、pinina等配置(此创建指令 项目配置较为完整)

想构建其他模板(react、微信小程序) npm init vite@latest 构建时自行选择基础模板

使用less 引入全局变量

安装less即可 vite已集成less-loader

npm install less -g

Vite中,对less的全局变量进行配置 新建assets下新建main.less

在vite.config.ts 修改css配置

css 复制代码
css: {
    // 预处理器配置项
    preprocessorOptions: {
      less: {
        //注入全局样式
        additionalData: `@import '/src/assets/main.less';`,
      },
    },
    }

main.ts引入main.less即可,vue文件中,便能直接访问到main.less,定义的变量等

使用rollup-plugin-visualizer

打包体积分析插件

css 复制代码
cnpm i rollup-plugin-visualizer -D

基本用法 vite.config.ts 配置plugin

arduino 复制代码
import { visualizer } from "rollup-plugin-visualizer";
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    visualizer({
      open: true, //在默认用户代理中打开生成的文件
      gzipSize: true, // 收集 gzip 大小并将其显示
      brotliSize: true, // 收集 brotli 大小并将其显示
      filename: "stats.html", // 分析图生成的文件名
    }),
  ],
  

打包生成stats.html

用Autoprefixer 配置css样式补全

Autoprefixer是一款基于PostCSS插件,用于解析CSS并使用Can I Use中的值向CSS规则添加供应商前缀 。它是 Google 推荐的,并在Twitter和阿里巴巴中使用。

可以实现css3代码自动补全,也可以运用到sass、less中

npm i autoprefixer

去vite.config.ts 配置css的postcss选项

javascript 复制代码
export default defineConfig({
//补全css前缀 浏览器兼容
  css: {
    postcss: {// 关键代码
      plugins: [
        require("tailwindcss"),
        require("autoprefixer")({// 自动添加前缀 的浏览器
          overrideBrowserslist: [
            "Android 4.1",
            "iOS 7.1",
            "Chrome > 31",
            "ff > 31",
            "ie >= 8",
            "> 1%",
            //'last 2 versions', // 所有主流浏览器最近2个版本
          ],
          grid: true,
        }),
      ],
    },
   }
  })`
 

使用Atomic CSS(原子 CSS) 引入tailwindcss

tailwindcss 是一个 CSS 框架 ,主要特点是 utility class ,实现了原子化 css :1个class代表1个css 属性。

中文安装文档链接 www.tailwindcss.cn/docs/instal...

go 复制代码
npm i -D tailwindcss postcss autoprefixer 
安装依赖

npx tailwindcss init -p
创建`postcss.config.js`文件,这里的配置主要是添加`tailwindcss`的插件,这样你编写的css才会被`tailwindcss`处理;(或者在vite.config.ts配置)
创建`tailwind.config.js`文件,主要进行扫描规则、主题、插件等配置。

修改生成的tailwind.config.js

css 复制代码
module.exports = {
  content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
  theme: {
    extend: {},
  },
  plugins: [],
}

!注意!这里只是配置了扫描内容,去扫描 src目录下所有以vue/js/ts/jsx/tsx 结尾的文件。 而TailwindCSS本身是一个PostCSS插件,需要配置postcss,不然css不会被tailwindcss处理!

去postcss.config.js或者vite.config.ts

css 复制代码
postcss: {// 关键代码
      plugins: [
        require("tailwindcss")
      ],
    },

去样式文件 引入依赖样式

less 复制代码
@tailwind base;
@tailwind components;
@tailwind utilities;

使用

ini 复制代码
<h1 class=" bg-blue-500">tailwindcss</h1>

效果

params传参失效

不是指页面刷新数据丢失问题,这种结合localStorage存储即可,有现成插件

使用name和params传参,发现获取不到params,打印为空。 官方已不推荐params传参,会刷新页面丢失,还得耗费心力处理。

**解决方案:少量数据改query传递,复杂数据用pinia或者vuex。或者History API 方式传递和接收(state) 参考文章

相关推荐
wh_xia_jun9 分钟前
Vue3 + Vitest 浏览器测试 从零开发指南
前端·javascript·vue.js
暗冰ཏོ11 小时前
VUE面试题大全
前端·javascript·vue.js·面试
雨雨雨雨雨别下啦15 小时前
心理健康AI助手 - 项目总结
前端·javascript·vue.js·人工智能·信息可视化
风之舞_yjf15 小时前
Vue基础(32)_TodoList案例
前端·javascript·vue.js
程序软件分享18 小时前
vue多语言交易所系统/期货/合约交易/质押生息/盲盒/挖矿/跟单源码
前端·javascript·vue.js·期货平台源码
Rooting++19 小时前
package.json三种依赖的区别
vue.js·json
Yeh20205819 小时前
springboot+vue笔记
vue.js·spring boot·笔记
m0_7510186620 小时前
docker 安装 nginx
vue.js·nginx·docker
zyl8372120 小时前
3Dmol.js + Vue3快速上手
vue.js
镜宇秋霖丶20 小时前
2026.5.18@霖宇博客制作中遇见的问题
vue.js