赞
踩
这里记录下自己在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/
命令如下,-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" } } } })
在views下home文件下的index.vue修改svg标签样式,如下:
浏览器结果如下,发现width的宽度变为80px,说明使用成功。
命令如下,-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页功能联动。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。