Vue3+vite搭建基础架构(10)--- 使用less和vite-plugin-vue-setup-extend

news/2024/7/10 0:52:43 标签: vue.js, less, vue, 前端, html5

Vue3+vite搭建基础架构(10)--- 使用less和vite-plugin-vue-setup-extend

  • 说明
  • 官方文档
  • 安装less
  • 测试less表达式
  • 安装vite-plugin-vue-setup-extend

说明

这里记录下自己在Vue3+vite的项目使用less来写样式以及使用vite-plugin-vue-setup-extend直接定义组件name,不使用ts语法,方便以后直接使用。这里承接自己的博客Vue3+vite搭建基础架构(9)— 使用vite-plugin-svg-icons这篇博客,在该博客项目的基础上增加使用less和vite-plugin-vue-setup-extend。

官方文档

less官方文档:https://less.bootcss.com/usage/

less_8">安装less

命令如下,-D表示该依赖添加在package.json里面的devDependencies。

npm install less -D

在webstorm里面的Terminal输入npm install less -D命令安装该依赖。执行完如下:
在这里插入图片描述

package.json会增加less版本号
在这里插入图片描述
在vite.config.js里面添加less配置,支持表达式计算。根据实际项目需要引用即可。
在这里插入图片描述
vite.config.js代码如下:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
//引入path用于写别名配置,自带无须安装
import path from 'path'
//使用svg-icons插件
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    // 注册所有的svg文件生成svg雪碧图
    createSvgIconsPlugin({
      iconDirs: [path.resolve(process.cwd(), "src/assets/icons")], //svg图片存放的目录
      symbolId: "icon-[name]", // symbol的id
      inject: "body-last", // 插入的位置
      customDomId: "__svg__icons__dom__" // svg的id
    })
  ],
  resolve: {
    //别名配置
    alias: {
      '~': path.resolve(__dirname, './'),
      '@': path.resolve(__dirname, 'src')
    },
    //引入文件的时候,可以忽略掉以下文件后缀
    extensions: ['.js', '.mjs', '.vue', '.json', '.less', '.css']
  },
  css:{
    //预处理器配置项
    preprocessorOptions:{
      less:{
        //支持直接使用表达式 width: 100px - 20px;得到值为width:80px;
        math: "always"
      }
    }
  }
})

less_62">测试less表达式

在views下home文件下的index.vue修改svg标签样式,如下:
在这里插入图片描述
浏览器结果如下,发现width的宽度变为80px,说明使用成功。
在这里插入图片描述

vuesetupextend_67">安装vite-plugin-vue-setup-extend

命令如下,-D表示该依赖添加在package.json里面的devDependencies。

npm install vite-plugin-vue-setup-extend -D

在webstorm里面的Terminal输入vite-plugin-vue-setup-extend -D命令安装该依赖。执行完如下:
在这里插入图片描述
package.json会增加vite-plugin-vue-setup-extend版本号
在这里插入图片描述
在vite.config.js添加如下代码:
在这里插入图片描述
vite.config.js代码如下:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
//引入path用于写别名配置,自带无须安装
import path from 'path'
//使用svg-icons插件
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
//使用vite-plugin-vue-setup-extend
import VueSetupExtend from 'vite-plugin-vue-setup-extend'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    // 注册所有的svg文件生成svg雪碧图
    createSvgIconsPlugin({
      iconDirs: [path.resolve(process.cwd(), "src/assets/icons")], //svg图片存放的目录
      symbolId: "icon-[name]", // symbol的id
      inject: "body-last", // 插入的位置
      customDomId: "__svg__icons__dom__" // svg的id
    }),
    VueSetupExtend()
  ],
  resolve: {
    //别名配置
    alias: {
      '~': path.resolve(__dirname, './'),
      '@': path.resolve(__dirname, 'src')
    },
    //引入文件的时候,可以忽略掉以下文件后缀
    extensions: ['.js', '.mjs', '.vue', '.json', '.less', '.css']
  },
  css:{
    //预处理器配置项
    preprocessorOptions:{
      less:{
        //支持直接使用表达式 width: 100px - 20px;得到值为width:80px;
        math: "always"
      }
    }
  }
})

未使用前需要2个script标签,示例:
在这里插入图片描述
添加依赖后,直接使用即可,示例:
在这里插入图片描述
到这里项目所需要的基础依赖都已全部安装完毕,后面不在写依赖安装及测试,会直接写菜单栏和Tab页功能联动。


http://www.niftyadmin.cn/n/5382902.html

相关文章

基于python+django+vue.js开发的医院门诊管理系统/医疗管理系统

功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 功能包括:医生管理、科室管理、护士管理、住院管理、药品管理、用户管理、日志管理、系统信息模块。 源码地址 https://github.com/geeeeeee…

【基础】电容降压电路的特点及元器件选择

电容降压电路的特点及元器件选择 在电子制作时,为了减小体积、降低成本,往往采用电容降压的方法代替笨重的电源变压器。采用电容降压方法如元器件选择不当,不但达不到降压要求,还有可能造成电路损坏。本文从实际应用角度&#xf…

华为配置旁挂三层组网隧道转发示例

配置旁挂三层组网隧道转发示例 组网图形 图1 配置旁挂三层组网隧道转发示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件扩展阅读 业务需求 企业用户接入WLAN网络,以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时,不…

飞天使-k8s知识点19-kubernetes实操4-资源调度 标签和选择器:Label与Selector的使用-版本回退

文章目录 添加label资源调度 Deployment:创建与配置文件解析rs pod deploy 的关联信息展示Deployment:滚动更新Deployment:回滚回退版本实际操作 添加label [rootkubeadm-master1 test]# kubectl get pod NAME …

【C】printf和scanf函数的探索

printf()是输出函数,scanf()是输入函数,输入/输出函数简称为I/O函数。它两是C语言中最通用的输入输出函数。不同的编译器可能有不同的I/O的实现。 printf和scanf这两个函数虽然功能不同,但是工作原理几乎相同,它们都使用格式字符…

Maven属性scope

参考: maven 中 scope标签的作用(runtime、provided、test、compile 的作用) 【Maven】属性scope依赖作用范围详解 scope为provided

MySQL中SQL语句的执行流程(高频考点)

文章目录 前言SQL语句的执行流程查询语句的执行流程更新语句的执行流程 总结 前言 昨天跟大家讲了MySQL的基础架构(链接:MySQL的基础架构),今天讲一讲我们的高频面试题MySQL中SQL语句的执行流程。 建议看完 MySQL的基础架构 再来…

排序第三篇 直接插入排序

插入排序的基本思想是: 每次将一个待排序的记录按其关键字的大小插入到前面已排好序的文件中的适当位置, 直到全部记录插入完为止。 一 简介 插入排序可分为2类 本文介绍 直接插入排序 它的基本操作是: 假设待排充序的记录存储在数组 R[1……