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 预处理器,需要安装 sass 或 node-sass 模块,并在 Vite 的配置文件中进行如下配置:

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

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

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

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

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

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

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

相关文章
|
运维 JavaScript Java
govaluate 规则引擎
govaluate 规则引擎
4083 0
govaluate 规则引擎
|
开发框架 JavaScript 前端开发
服务端渲染框架
服务端渲染框架
Vue2时间轴(横向)
该横向时间轴组件 `HorizonTimeLine` 可自定义时间轴数据 (`timelineData`) 和初始选中年份 (`activeYear`)。通过点击不同的年份,可以改变当前激活的年份,并有相应的视觉反馈。该组件支持均匀自适应排列,且易于在其他页面中引入和使用。
1529 0
Vue2时间轴(横向)
|
前端开发 定位技术 API
Mapbox添加行政区矢量图层,Mapbox添加分级设色图层,Mapbox添加文本标记图层,Mapbox给行政区矢量数据添加名称,Mapbox自定义鼠标悬浮框,Mapbox添加天地图底图
Mapbox的中国分部好像在2021年左右就退出中国了,官方文档的汉化工作也戛然而止,相关的社区建设也相当欠缺,内容比较混乱,最离谱的是mapbox官方底图库中的中国地图基本都是错的,天地图引入又麻烦...... 恰好我最近有一个基础的mapbox应用需求,就做了一些整理和探索,分享给大家。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来
|
存储 缓存 监控
如何写出一篇好的技术方案?
近期作者在写某个项目的技术方案时,来来回回修改了许多版,很是苦恼。于是,将自己之前写的和别人写的技术方案都翻出来看了几遍,产生了一些思考,分享给大家。
如何写出一篇好的技术方案?
vue3 键盘事件 回车发送消息,ctrl+回车 内容换行
const textarea = textInput.value.textarea; //获取输入框元素
1191 3
|
JavaScript
vue中关于element的el-image 图片预览功能增加一个下载按钮
vue中关于element的el-image 图片预览功能增加一个下载按钮
2088 0
|
存储 Web App开发 安全
如何防范 CSRF 攻击
CSRF(跨站请求伪造)攻击是一种常见的安全威胁。防范措施包括:使用Anti-CSRF Token、检查HTTP Referer、限制Cookie作用域、采用双重提交Cookie机制等,确保请求的合法性与安全性。
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
1324 6
|
传感器 数据可视化 JavaScript
状态机(State Machines):理解、设计和应用有限状态机
状态机(State Machines)是一种强大的计算模型和设计工具,用于建模和控制有限状态的系统和行为。无论是在软件开发、自动化控制、游戏设计还是其他领域,状态机都发挥着关键作用。本博客将深入探讨状态机的概念、工作原理以及如何在不同应用中设计和应用它们。
11254 78

热门文章

最新文章