Vite 和 Webpack 都是流行的前端构建工具,但它们在设计理念和实现方式上有一些关键区别,使得 Vite 在某些方面相比 Webpack 有明显的优势。
以下是 Vite 相比 Webpack 的一些主要优势:
首先要保证Node.js的版本为18.3 或更高版本
nvm list
nvm install 18.20.4
nvm use 18.20.4
创建项目
npm create vue@latest
根据提示创建即可。
npm install -D less
这样就安装好了可以使用了
vite.config.js中添加以下配置
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
css: {
preprocessorOptions: {
less: {
additionalData: '@import "@/assets/css/_variables.less";',
javascriptEnabled: true
}
}
}
})
主要是
css: {
preprocessorOptions: {
less: {
additionalData: '@import "@/assets/css/_variables.less";',
javascriptEnabled: true
}
}
}
添加我们的变量文件/assets/css/_variables.less
@z_space_m: 1.6rem;
@z_font_m: 1.6rem;
@z_font_l: 1.8rem;
这个配置会自动将 _variables.less
文件引入到所有的 less
文件中,这样我们定义的变量less
文件就不用再引用就可以使用了。
在main.js
中添加全局样式
import "@/assets/css/_common.less"
假如添加如下
.z_font_m {
font-size: @z_font_m;
}
.z_font_l {
font-size: @z_font_l;
}
这样所有页面就可以直接使用这些样式了。
<style lang="less">
@import "@/assets/css/home.less";
</style>
npm install -D sass
这样就安装好了可以使用了
vite.config.js中添加以下配置
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
css: {
preprocessorOptions: {
scss: {
additionalData: '@import "@/assets/css/_variables.scss";',
javascriptEnabled: true
}
}
}
})
主要是
css: {
preprocessorOptions: {
scss: {
additionalData: '@import "@/assets/css/_variables.scss";',
javascriptEnabled: true
}
}
}
添加我们的变量文件/assets/css/_variables.scss
$z_space_m: 1.6rem;
$z_font_m: 1.6rem;
$z_font_l: 1.8rem;
这个配置会自动将 _variables.scss
文件引入到所有的 scss
文件中,这样我们定义的变量scss
文件就不用再引用就可以使用了。
在main.js
中添加全局样式
import "@/assets/css/_common.scss"
假如添加如下
.z_font_m {
font-size: $z_font_m;
}
.z_font_l {
font-size: $z_font_l;
}
这样所有页面就可以直接使用这些样式了。
<style lang="scss">
@import "@/assets/css/home.scss";
</style>
https://www.antdv.com/docs/vue/getting-started-cn
Ant Design 和 iView都是不错的UI框架,这里更推荐使用Ant Design,最大的原因是:
虽然Ant Design 和 iView都是使用的Less,但是Ant Design提供了一种新的设置主题的方式。
npm i --save ant-design-vue@4.x
引用
import {createApp} from 'vue'
import {createPinia} from 'pinia'
import App from './App.vue'
import router from './router'
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/reset.css';
const app = createApp(App)
app.use(createPinia())
app.use(router)
app.use(Antd)
app.mount('#app')
https://www.antdv.com/docs/vue/customize-theme-cn
修改主题变量
通过在 ConfigProvider 中传入 theme
,可以配置主题。
在升级 v4 后,将默认使用 v4 的主题,以下是将配置主题示例:
<template>
<a-config-provider
:theme="{
token: {
colorPrimary: '#00b96b',
},
}"
>
<a-button />
</a-config-provider>
</template>
如果已经习惯使用iView可以参考下文设置。
安装
npm install view-ui-plus --save
main.js中引用
import "@/assets/css/_common.scss"
import {createApp} from 'vue'
import {createPinia} from 'pinia'
import App from './App.vue'
import router from './router'
import ViewUIPlus from 'view-ui-plus'
import 'view-ui-plus/dist/styles/viewuiplus.css'
const app = createApp(App)
app.use(createPinia())
app.use(router)
app.use(ViewUIPlus)
app.mount('#app')
如果你的项目使用了 webpack/vite
工程,可以通过变量覆盖的方式来实现主题定制。
创建文件/assets/css/my-theme/index.less
。
并写入下面内容:
@import '~view-ui-plus/src/styles/index.less';
// Here are the variables to cover, such as:
@primary-color: #FA7E31;
完整的变量列表可以查看 默认样式变量。
然后在入口文件 main.js
内导入这个 less 文件即可:
import '@/assets/css/my-theme/index.less';