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

项目打包不同环境

1.vite的 env文件作用

在项目的根目录下创建 .env 文件。你可以为不同的环境创建不同的文件,例如 .env.development.env.production 等。

.env:全局默认配置文件,无论什么环境都会加载合并。

.env.development:开发环境的配置文件

.env.production:生产环境的配置文件

 文件配置

.env 文件中定义环境变量,变量名必须以 VITE_ 为前缀才会暴露给客户端代码。例如

NODE_ENV='test'
VITE_APP_TITLE=routing-vite-test
# API URL
VITE_PUBLIC_URL='http://192.168.128.21/vite-dev/'

在应用程序中,你可以通过 import.meta.env 对象来访问这些环境变量。例如,在 Vue 组件中:

<script setup>
console.log(import.meta.env.VITE_APP_TITLE);
</script>

这将输出定义在 .env 文件中的 VITE_APP_TITLE 环境变量的值。

项目会根据启动命令自动加载相对应的环境配置文件。vue,react是根据文件名进行加载的,所以说“不要乱起名,也无需专门控制加载哪个文件”

可以通过 npm run 看有哪些可以运行项

运行npm run xxxx的时候主要还是看package.jsonxxxx属性的--mode后面跟的是啥。如果是development,就会加载.env.development文件。

package.json里面配置好

 "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
    "test": "vite build --mode test",
    "preview": "vite preview"
    
  },

 2.设置打包的静态文件目录

通过在vite.config.ts配置base:url,可以改变打包静态资源的路径

import react from '@vitejs/plugin-react-swc'
import path from 'path'
import { visualizer } from 'rollup-plugin-visualizer'
import { defineConfig } from 'vite'
import viteCompression from 'vite-plugin-compression'

// https://vitejs.dev/config/
export default defineConfig({
  base: '/sssss-vite/',
  // base: '/sssss-vite-dev',看线上对应服务器什么路径就写什么
  plugins: [react(), viteCompression()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
    },
  },
  build: {
    rollupOptions: {
      plugins: [
        visualizer({
          open: false,
          template: 'treemap',
          gzipSize: true,
          brotliSize: true,
        }),
      ],
    },
  },
  server: {
    proxy: {
      '/routing-vite/api': {
        target: 'http://192.168.106.28:8080',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/routing-vite\/api/, ''),
      },
    },
  },
})


http://www.kler.cn/news/362774.html

相关文章:

  • 【国潮来袭】华为原生鸿蒙 HarmonyOS NEXT(5.0)正式发布:鸿蒙诞生以来最大升级,碰一碰、小艺圈选重磅上线
  • Linux系列-Linux的常见指令(三)
  • 《使用Gin框架构建分布式应用》阅读笔记:p88-p100
  • 大厂面试真题-了解云原生吗,简单说一下docker和k8s
  • three.js 使用geojson ,实现中国地图区域,边缘流动效果
  • 陆金所控股第三季度财报分析:增长困局与逆势突围
  • 【D3.js in Action 3 精译_036】4.1 DIY 实战:在 Observable 平台实现 D3折线图坐标轴的绘制
  • AudioSegment 提高音频音量 - python 实现
  • 消息队列(仿RabbitMQ)—— 生产消费模型
  • 钉钉消息推送工具类
  • 使用皮尔逊相关系数矩阵进行特征筛选
  • Windows系统启动MongoDB报错无法连接服务器
  • 码支付源码2024又一款全新码支付源码
  • 国产自主可控新征程:华为原生鸿蒙系统与鲲鹏认证
  • vue中选项式 API(Options API) 和 组合式 API(Composition API)区别
  • Python 实现的风控系统(使用了kafka、Faust、模拟drools、redis、分布式数据库)
  • 【Excel】函数各类公式总结
  • 深度图和RGB图对齐
  • 技术成神之路:设计模式(二十二)命令模式
  • 玩转PyCharm:常用操作和快捷键
  • 【Windows】Microsoft Office 的 .docx .xlsx .pptx 等文件图标消失,变成空白图标
  • elasticsearch中的向量检索,语义检索,RRF,kNN,ANN,HNSW
  • 各种包管理工具(npm,pip,yum,brew...)换镜像源
  • 【JavaScript】LeetCode:71-75
  • Zabbix 监控自动化
  • 论文翻译 | A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT (上)