工具链 之 Vite 常见的共享选项配置(二)

这些配置通常包括插件、别名、CSS 预处理器设置。

1. 插件(Plugins)

插件是 Vite 生态系统中的核心部分,用于扩展 Vite 的功能。一些插件(如 @vitejs/plugin-vue 对于 Vue 项目)是项目所必需的,并且在所有环境中都应该被包含。

// vite.config.js  
import { defineConfig } from 'vite'  
import vue from '@vitejs/plugin-vue' // Vue 项目必需的插件  export default defineConfig({  plugins: [  vue(), // 在所有环境中都包含 Vue 插件  // ... 其他插件  ],  // ... 其他配置  
})

2. 别名(Resolve Aliases)

别名允许你为模块路径定义简短的别名,从而简化导入语句。这些别名通常在整个项目中都是相同的。

// vite.config.js  
import { defineConfig } from 'vite'  
import path from 'path'  export default defineConfig({  resolve: {  alias: {  '/@/': path.resolve(__dirname, 'src'), // 将 '/@/' 别名映射到项目的 src 目录  // ... 其他别名  },  },  // ... 其他配置  
})

3. CSS 预处理器(CSS Preprocessors)

如果你使用 SCSS、Less 或其他 CSS 预处理器,你可能需要配置它们的行为。这些配置通常也是共享的。

// vite.config.js  
import { defineConfig } from 'vite'  
import vue from '@vitejs/plugin-vue'  export default defineConfig({  plugins: [vue()],  css: {  preprocessorOptions: {  scss: {  // SCSS 预处理器的配置选项  additionalData: `@import "./src/styles/variables.scss";`, // 引入全局 SCSS 变量文件  // ... 其他 SCSS 配置  },  },  },  // ... 其他配置  
})

4. 构建输出(Build Output)

虽然构建输出的具体细节(如输出目录、压缩选项等)可能因环境而异,但一些基本的构建输出配置(如输出格式)通常是共享的。

// vite.config.js  
import { defineConfig } from 'vite'  export default defineConfig({  build: {  outDir: 'dist', // 输出目录(可以根据环境调整)  assetsDir: 'assets', // 静态资源目录  lib: {  entry: 'src/main.js', // 如果构建库,指定入口文件  name: 'my-lib', // 库的名字  fileName: (format) => `my-lib.${format}.js`, // 输出的文件名格式  },  rollupOptions: {  output: {  // 假设你想要在生产环境中添加一些特定的 Rollup 配置  if (isProduction) {  // 生产环境特定的 Rollup 配置  }  },  },  // ... 其他构建配置  },  // ... 其他配置  
})

5. 环境变量(Environment Variables)

虽然环境变量本身不是配置选项,但你可以在配置文件中使用它们来根据环境定制配置。通常,你会在 .env 文件中定义环境变量,并在 vite.config.js 中使用它们。列如:

// vite.config.js  
import { defineConfig } from 'vite'  export default defineConfig(({ command, mode }) => {  const isProduction = mode === 'production'  const port = isProduction ? 8080 : 3000 // 根据环境设置端口  return {  server: {  port, // 使用环境变量或默认值设置端口  },  // ... 其他配置  }  
})

6. 定义全局常量

export default defineConfig({  define: {  'process.env': {  MODE: JSON.stringify(mode),  // ... 其他环境相关的全局变量  },  }, // ... 其他配置  
})

7. 开发服务器选项

export default defineConfig({  server: {  port, // 使用环境变量 VITE_APP_PORT 定义的端口,如果未定义则使用默认值 3000  // ... 其他开发服务器配置  },  // ... 其他配置  
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/29314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原生APP开发的技术难点

原生APP开发是一项复杂的技术工作,需要掌握多种编程语言和技术。原生APP开发的技术难点主要体现在以下几个方面,原生APP开发是一项技术难度较高的工作,需要开发者具备扎实的编程基础和丰富的开发经验。北京木奇移动技术有限公司,专…

Pycharm怎么默认终端连接远程服务器

因为经常需要从宿舍到学校内通勤,期间所有连接都会中断,所以每次开SSH特别麻烦,每次终端自动切换到本地: 每次都得点一下Start SSH Session 想要默认终端连接远程服务器,需要点File->Setting->Tools->SSH T…

Python - 一个恶意脚本

Python - 恶意脚本 使用此脚本或修改前请注意以下几点: 系统资源:大量模拟键盘和鼠标事件可能会占用大量系统资源,会导致其他应用程序运行缓慢或崩溃。 隐私和安全:如果此脚本在未经用户同意的情况下运行,它可能侵犯…

铺地地毯B1级防火检测 隔断板A1阻燃测试 氧指数检测

铺地地毯B1级防火检测 铺地地毯的B1级防火检测是指按照国家标准GB 8624-2012《建筑材料及制品燃烧性能分级》进行的测试,该标准将建筑材料及制品的燃烧性能分为A、B1、B2、B3四个等级。B1级表示难燃材料,具有较好的阻燃作用,在空气中遇明火或…

泛微E9开发 查询页面添加按钮,完成特定功能

查询页面添加按钮,完成特定功能 1、关联知识(查询页面实现新增按钮)2、功能实现2.1. 点击按钮,输出选中的checkbox的值2.2. 点击按钮,打开一个自定义对话框 3、实现方法 1、关联知识(查询页面实现新增按钮&…

如何在不降低网络安全防护的前提下,优化pcdn的流量清洗效率?

在不降低网络安全防护的前提下,优化PCDN的流量清洗效率是一个复杂但至关重要的任务。以下是一些建议,帮助您实现这一目标: 一.升级硬件与网络设备: 投资于高性能的硬件和网络设备,以确保流量清洗过程中的…

【最新鸿蒙应用开发】——总结鸿蒙ArkTS渲染机制

ArkTS三种渲染控制机制 ArkUI通过自定义组件的build()函数和builder装饰器中的声明式UI描述语句构建相应的UI。在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句…

【大数据】gRPC、Flink、Kafka 分别是什么?

1. gRPC gRPC(Google Remote Procedure Call)是一个高性能、开源的远程过程调用(RPC)框架。它是由Google开发的,支持多种编程语言,并且广泛应用于微服务架构中。以下是gRPC的一些关键特点: 多语…

低代码结合自研项目打包发布

nginx配置 #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }http {include mime.types;default_type applica…

麒麟Kylin | 操作系统的安装与管理

以下所使用的环境为:VMware Workstation 17 Pro、Kylin-Server-10-SP2-x86-Release-Build09-20210524 一、创建虚拟机 在VMware主机单击【创建新的虚拟机】 **在新建虚拟机向导中选择【自定义】,然后点击【下一步】 ** 保持默认选项,然后…

Vue 3 的 Teleport 组件实现跨层级通信

突破组件边界 - 使用 Vue 3 的 Teleport 组件实现跨层级通信 你可能已经熟悉了组件的基本概念:每个组件都是一个独立的单元,拥有自己的模板、样式和逻辑。但是,有时候我们需要在不同层级的组件之间进行交互,这就需要用到 Vue 3 中新引入的 Teleport 组件。 Teleport 组件可以…

CorelDRAW Graphics Suite下载2024最新版-CorelDRAW2024详细安装步骤

CorelDRAW​​ Graphics Suite官方版是款很多用户在工作中都会使用的矢量图形设计工具。CorelDRAW Graphics Suite正式版采用量身定制的界面和无与伦比的定制功能,畅享无缝设计经验。并且CorelDRAW Graphics Suite还可以广泛应用于商标设计、标志制作、模型绘制、插…

LangGraph自适应RAG

LangGraph自适应RAG 介绍索引LLMsweb 搜索工具graphgraph stategraph flowbuild graph执行 介绍 自适应 RAG 是一种 RAG 策略,它将 (1) 查询分析 (2) 主动/自校正 RAG 结合起来。 在文章中,他们报告了查询分析到路由获取: No RetrievalSing…

采用PHP语言(医院安全不良事件上报系统源码)医院不良事件 各类事件分析、分类、处理流程

医疗安全不容忽视! 医疗安全(不良)事件是指在临床诊疗活动中以及医院运行过程中,任何可能影响患者的诊疗结果、增加患者的痛苦和负担并可能引发医疗纠纷或医疗事故,以及影响医疗工作的正常运行和医务人员人身安全的因…

什么是隐马尔可夫模型?

文章目录 一、说明二、玩具HMM:5′拼接位点识别三、那么,隐藏了什么?四、查找最佳状态路径五、超越最佳得分对齐六、制作更逼真的模型七、收获 关键词:hidden markov model 一、说明 被称为隐马尔可夫模型的统计模型是计算生物学…

libdrm 2.4.107 needed because amdgpu has the highest requirement

libdrm 2.4.107 needed because amdgpu has the highest requirement 1.问题分析解决 1.问题 Message: libdrm 2.4.107 needed because amdgpu has the highest requirement Run-time dependency libdrm_intel found: YES 2.4.107 Run-time dependency libdrm_amdgpu found: Y…

Day 25:1807. 替换字符串中的括号内容

Leetcode 1807. 替换字符串中的括号内容 给你一个字符串 s ,它包含一些括号对,每个括号中包含一个 非空 的键。 比方说,字符串 “(name)is(age)yearsold” 中,有 两个 括号对,分别包含键 “name” 和 “age” 。 你知道…

Ansible介绍

一、Ansible概述 Ansible是一款开源的自动化运维工具,基于Python开发,主要用于批量系统配置、批量程序部署、批量运行命令等功能。它集合了众多运维工具的优点,并通过其高度模块化的特性,实现了灵活、可扩展的自动化运维管理。 …

ICMAN触摸芯片握手感应演示

随着科学技术的不断发展,触摸芯片在我们的生活中开始扮演着越来越多同时也越来越重要的角色,大到工业设备小到家用电器中都能找到它的身影。 相信大家都很好奇触摸芯片到底是怎样一个神奇的存在呢?那我们就来一探究竟。 要了解触摸芯片&…

ARDUINO NRF24L01

连线 5v 3.3皆可 gnd Optimized high speed nRF24L01 driver class documentation: Optimized High Speed Driver for nRF24L01() 2.4GHz Wireless Transceiver 同时下载同一个程序 案例默认引脚ce ces ,7,8 可以 修改为 9,10 安装库 第一个示例 两…