Vite 共享配置

简介: 本文介绍了 Vite 配置中的 `base`、`mode`、`plugins`、`resolve` 和 `css` 等关键配置项。`base` 用于设置公共基础路径,`mode` 指定环境模式,默认为 `development` 和 `production`。`plugins` 注册项目中使用的插件。`resolve` 包含别名配置、去重依赖项和模块入口字段等选项。`css` 配置 CSS 预处理器及其选项,如导入样式变量文件。

base

开发或生产环境服务的公共基础路径。合法的路径3种写法

  1. 绝对URL   /test/
  2. 完整的URL  https://test.com/
  3. 空字符串或者 ./ (用于嵌入形式的开发)

mode 模式

指定当前应用的环境,

默认: 'development' 用于开发,'production' 用于构建

在配置中指明将会把 serve 和 build 时的模式 覆盖掉。也可以通过命令行 --mode 选项来重写。

mode:'test'

plugins 插件注册

类型: (Plugin | Plugin[] | Promise<Plugin | Plugin[]>)[]

项目中用到的插件注册。

更多关于插件文档: https://cn.vitejs.dev/guide/api-plugin.html

plugins: [vue()],

resolve

resolve.alias 别名配置

resolve.alias是Vite中用于配置别名的选项,它可以帮助我们在代码中使用简短的路径来引用模块。

例如,我们可以将import '../../../components/Button'这样冗长的路径改为import '@components/Button'

// 配置别名
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src'),
      '@components': path.resolve(__dirname, 'src/components')
    }
  },

使用别名

<img src="@/assets/33.gif" alt="">
import HelloWorld from '@components/HelloWorld.vue'

resolve.dedupe 去重依赖项,减小打包后的文件体积

resolve.dedupe是Vite中用于去重依赖项的选项,它可以帮助我们减小打包后的文件体积。在Vite中,如果多个模块都依赖同一个库,那么这个库就会被重复打包进每个模块中,导致最终的打包文件体积变大。而使用resolve.dedupe选项可以让Vite自动去重这些依赖项,只打包一份库代码,从而减小打包后的文件体积。

以下是如何在Vite中使用resolve.dedupe选项:

  1. 在Vite配置文件(通常是vite.config.js)中添加resolve.dedupe选项:
// vite.config.js
module.exports = {
  resolve: {
    dedupe: ['lodash']
  }
}

上面的示例中,我们将lodash库添加到了resolve.dedupe选项中,表示Vite在打包时会自动去重所有依赖lodash的模块。

  1. 在代码中正常引用依赖项即可,无需额外操作。

注意,resolve.dedupe选项只能去重ESM模块,对于CommonJS模块不起作用。此外,由于去重需要进行静态分析,因此可能会影响构建速度。因此,建议仅在必要时使用resolve.dedupe选项。

resolve.mainFields 用于指定模块入口文件的选项,帮助我们更精确地控制模块的解析过程

package.json 中,在解析包的入口点时尝试的字段列表。注意:这比从 exports 字段解析的情景导出优先级低:如果一个入口点从 exports 成功解析,resolve.mainFields 将被忽略。

resolve.extensions  配置导入文件需要省去的扩展名

导入时想要省略的扩展名列表。注意,不 建议忽略自定义导入类型的扩展名(例如:.vue),因为它会影响 IDE 和类型支持。

  • 默认: ['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json']

css

css.preprocessorOptions 用于配置 CSS 预处理器的选项 [例如:导入样式变量文件]

css.preprocessorOptions 是 Vite 中用于配置 CSS 预处理器的选项。通过该选项,可以指定使用哪种 CSS 预处理器,并设置相应的预处理器选项。

在 Vite 中支持以下几种 CSS 预处理器:

  • Sass/SCSS
  • Less
  • styl/stylus - 仅支持 define,可以作为对象传递。

以 Sass/SCSS 为例,要使用 Sass/SCSS 预处理器,需要安装 sassnode-sass 模块,并在 Vite 的配置文件中进行如下配置:

// vite.config.js
export default {
  css: {
    preprocessorOptions: {
      scss: {
        // 在这里设置 Sass 的选项
      }
    }
  }
}

其中,scss 表示使用 Sass/SCSS 预处理器,可以根据需要改为 lessstylus

scss 对象中,可以设置 Sass 的选项,例如:

// vite.config.js
export default {
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `
          @import "@/styles/variables.scss";
          @import "@/styles/mixins.scss";
        `
      }
    }
  }
}

上面的配置中,additionalData 选项用于添加额外的 Sass 代码,这里添加了两个 @import 语句,用于导入变量和混合宏定义。

除了 scss 选项外,还可以设置 lessstylus 选项,分别对应 Less 和 Stylus 预处理器的选项。

通过 css.preprocessorOptions 配置选项,可以方便地使用各种 CSS 预处理器,并设置相应的选项。

相关文章
|
SQL 存储 数据采集
数据中台建设方法论
数据中台建设方法论
|
10月前
|
安全 网络安全 开发工具
vulnhub靶机实战_DC-2
本文介绍了DC-2靶机的渗透测试实战过程,涵盖靶机下载、环境搭建、信息扫描、漏洞利用、权限提升及最终提权获取flag的完整流程。内容包括使用nmap扫描、WPScan和Hydra工具爆破登录信息,绕过rbash限制,利用git提权等关键技术步骤。
864 0
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南
vue3 键盘事件 回车发送消息,ctrl+回车 内容换行
const textarea = textInput.value.textarea; //获取输入框元素
1098 3
|
存储 缓存 监控
如何写出一篇好的技术方案?
近期作者在写某个项目的技术方案时,来来回回修改了许多版,很是苦恼。于是,将自己之前写的和别人写的技术方案都翻出来看了几遍,产生了一些思考,分享给大家。
如何写出一篇好的技术方案?
|
机器学习/深度学习 数据采集 算法
乳腺癌预测:特征交叉+随机森林=成功公式?
乳腺癌预测:特征交叉+随机森林=成功公式?
582 0
乳腺癌预测:特征交叉+随机森林=成功公式?
|
存储 数据可视化 前端开发
20个常用的 Git 指令用法
20个常用的 Git 指令用法
584 1
|
XML Java 数据库连接
Vue3 + Element Plus项目中el-switch按钮效果
Vue3 + Element Plus项目中el-switch按钮效果
1507 0
|
Java Apache
java word转html 报错org/apache/poi/xwpf/usermodel/IRunBody
java word转html 报错org/apache/poi/xwpf/usermodel/IRunBody
696 0

热门文章

最新文章