当前位置: 首页 > news >正文

Vite - vite.config.js 的一些配置(base、resolve、server)

一、base

1、基本介绍
  • base 用于设置开发或生产环境服务的公共基础路径
类型:string 默认值:/
2、演示
  1. 部署在根路径
base:'/'// 例如,https://example.com/
<!-- 此时生成的 HTML 中的资源引用会变为如下 --><scriptsrc="/assets/index.js"></script>
  1. 部署在子路径
base:'/my-app/'// 例如,https://example.com/my-app/
<!-- 此时生成的 HTML 中的资源引用会变为如下 --><scriptsrc="/my-app/assets/index.js"></script>
  1. 如果无法提前确定基础路径,可以使用"base": "./""base": ""设置相对基础路径
<!-- 此时生成的 HTML 中的资源引用会变为如下 --><scriptsrc="./assets/index.js"></script><!-- 浏览器会从当前 HTML 文件的所在目录请求 --><!-- 如果 HTML 在 https://example.com/my-app/index.html --><!-- 则请求 https://example.com/my-app/assets/index.js -->
3、开发环境与生产环境
import{defineConfig,loadEnv}from"vite";exportdefaultdefineConfig(({mode,command})=>{constenv=loadEnv(mode,process.cwd());const{VITE_APP_ENV}=env;return{base:VITE_APP_ENV==="production"?"/my-app/":"/",...};});

二、resolve

1、alias
(1)基本介绍
  • alias 用于设置路径别名,方便在其他地方引用模块
(2)演示
alias:{"~":path.resolve(__dirname,"./"),"@":path.resolve(__dirname,"./src"),}
  1. __dirname是当前执行脚本的目录,即vite.config.js所在目录

  2. 别名~指向的是当前目录的根目录

  3. 别名@指向的是当前目录下的src目录

2、extensions
  • 导入时想要省略的扩展名列表,不建议忽略自定义导入类型的扩展名(例如:.vue),因为它会影响 IDE 和类型支持
类型:string[] 默认值:['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json']

三、server

1、port
  • port 用于指定开发服务器端口
类型:number 默认值:5173
2、host
  • port 用于指定服务器应该监听哪个 IP 地址,如果将此设置为0.0.0.0或者true将监听所有地址
类型:string | boolean 默认值:'localhost'
3、open
  • open 用于开发服务器启动时,自动在浏览器中打开应用程序
类型:boolean | string
4、proxy
(1)基本介绍
  • proxy 用于为开发服务器配置自定义代理规则
(2)演示
  1. 这里发送的原请求为http://localhost/api/test

  2. 代理为了https://www.example.com/api/test

  3. 即开启代理服务器,拦截到了有api/test的请求

  4. http://localhost换成了https://www.example.comapi/test保持不变

  5. rewrite 用于对路径进行处理,如果没有该配置项,则不对路径进行处理

  6. 这里console.log(p);输出结果为/api/test

  7. return p;这里返回对路径/api/test的处理结果,这里相当于没有对路径进行处理,相当于没有 proxy 配置项

proxy:{"/api/test":{target:"https://www.example.com",changeOrigin:true,rewrite:(p)=>{returnp;},},}
http://www.jsqmd.com/news/561243/

相关文章:

  • biomaRt基因ID转换避坑指南:从ENSEMBL到Gene Symbol的完整解决方案
  • OpenClaw模型切换:Qwen3.5-9B与其他模型的无缝替换指南
  • COMSOL水力压裂岩石损伤耦合模型:MATLAB裂缝函数、模型及参考文献与含裂缝制作代码
  • d2s-editor:专业游戏存档编辑器的全方位解析
  • 访客门禁行业2026年深度分析报告 - 智能硬件-产品评测
  • 23.9k 开源版本 “腾讯、钉钉、飞书” 会议 平替视频会议解决方案
  • Fun-Rec:从零到一构建推荐系统的完整学习路径
  • CTFHub Git泄露实战:Stash和Index漏洞利用全解析(附BugScanTeam GitHack教程)
  • 微信小程序连接热敏打印机全流程指南:从蓝牙API到实战避坑
  • Hugo-PaperMod导航菜单故障排除与修复指南:从诊断到预防的完整方案
  • 深度学习驱动的CT肺部分割:从原理到实战的完整指南
  • Python农业物联网开发正在淘汰Django!FastAPI+Redis Stream+TimescaleDB构建毫秒级响应灌溉调度中枢(压测QPS达42,800)
  • 「权威评测」2026年国内垃圾桶厂家实力推荐,谁才是靠谱之选? - 深度智识库
  • 2026年国产高精度自动化测量装备的技术认知与选型指南 :以北京航锐斯维科技有限公司为例的技术科普 - 品牌推荐大师
  • 拯救C盘计划:把Docker Desktop的WSL2虚拟磁盘迁移到其他盘(含空间回收教程)
  • 手把手教你用MCP2515在NUC980上实现CAN通信(附完整SPI配置流程)
  • Arduino库管理终极指南:在VS Code中如何优雅添加自定义头文件(避坑版)
  • 西安晟瑞隆电梯:2026关中家用电梯一站式标杆,六年深耕铸就品质与口碑 - 深度智识库
  • 网页录音录像软件
  • Type-C接口PCB设计全解析:如何兼容USB3.1 Gen2的高速特性
  • Agent-S智能体框架:从技术突破到商业落地的全方位解析
  • Gecko SDK 4.x实战:在Simplicity Studio v5中快速集成Zigbee 3.0 EmberZNet开发环境
  • SDMatte与LSTM时序模型结合:处理视频连续帧的稳定抠图
  • 告别龟速下载!手把手教你离线配置MCUXpresso for VS Code开发环境(附SDK本地导入技巧)
  • 4大核心功能让你轻松掌控英雄联盟对局节奏
  • 逆AIGC算法怎么实现深层降AI?一文讲清核心逻辑
  • 新手必看:Keil中自定义库的创建与调用全攻略
  • Kubernetes 与 AI 集成最佳实践
  • 三步解锁Android Hook新境界:LSPosed_mod实战指南
  • OpenClaw+nanobot镜像:个人社交媒体监控系统搭建