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 预处理器,并设置相应的选项。

相关文章
|
存储 JavaScript 前端开发
深入了解rollup(五)插件输出生成钩子
输出生成钩子可以提供有关生成的产物的信息并在构建完成后修改构建。它们的工作方式和类型与 构建钩子 相同,但是对于每个调用 bundle.generate(outputOptions) 或 bundle.write(outputOptions),它们都会单独调用。仅使用输出生成钩子的插件也可以通过输出选项传递,并且因此仅针对某些输出运行。
242 0
|
9月前
|
JavaScript
Vite env 环境配置
Vite env 环境配置
242 4
Vite env 环境配置
|
移动开发 小程序
小程序-uniapp:URL Link / 适用于在移动端 从短信、邮件、微信外网页 等场景打开小程序任意页面
小程序-uniapp:URL Link / 适用于在移动端 从短信、邮件、微信外网页 等场景打开小程序任意页面
1079 0
|
9月前
一文带你封装Vue3 Echarts
一文带你封装Vue3 Echarts
780 7
一文带你封装Vue3 Echarts
|
9月前
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南
|
12月前
vite.config.js中vite.defineConfig is not defined以及创建最新版本的vite项目
本文讨论了在配置Vite项目时遇到的`vite.defineConfig is not defined`错误,这通常是由于缺少必要的导入语句导致的。文章还涉及了如何创建最新版本的Vite项目以及如何处理`configEnv is not defined`的问题。
722 3
vite.config.js中vite.defineConfig is not defined以及创建最新版本的vite项目
|
JSON 前端开发 JavaScript
Json格式化
Json格式化
|
前端开发 JavaScript 编译器
Vite中预处理器(如less)的配置
【8月更文挑战第2天】Vite中预处理器(如less)的配置
1182 4
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
|
SQL 分布式计算 关系型数据库
Hive教程(02)- Hive安装
Hive教程(02)- Hive安装
558 0