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

vue项目(vue-cli)配置环境变量和打包时区分开发、测试、生产环境

1.打包时区分不同环境

在自定义配置Vue-cli 的过程中,想分别通过.env.development .env.test .env.production 来代表开发、测试、生产环境。

NODE_ENV=development
NODE_ENV=test
NODE_ENV=production

本来想使用上面三种配置来区分三个环境,但是发现使用test来打包后在测试环境会报错,报错信息:Uncaught ReferenceError: exports is not defined

本来以为真的是程序出现什么错误,后来发现打包时只打包了部分代码:

  1. NODE_ENV 设置为 "test",Vue CLI 会创建一个优化过后的,并且旨在用于单元测试的 webpack 配置,它并不会处理图片以及一些对单元测试非必需的其他资源。

2、NODE_ENV=development 创建一个 webpack 配置,该配置启用热更新,不会对资源进行 hash 也不会打出 vendor bundles,目的是为了在开发的时候能够快速重新构建。

3、NODE_ENV=“someone”,环境变量随便给一个值,它会默认为NODE_ENV=“development” 的打包策略。包内的内容如下:

原文链接:https://blog.csdn.net/qq_33592641/article/details/121585965

总结:

当你运行 vue-cli-service build 命令时,无论你要部署到哪个环境,应该始终把 NODE_ENV 设置为 "production" 来获取可用于部署的应用程序。区别环境时可以以 VUE_APP_ 开头的变量命名赋值(如下VUE_APP_MODE):

最后配置文件区别为:

.env.development

NODE_ENV=production
VUE_APP_MODE=development

.env.test

NODE_ENV=production
VUE_APP_MODE=test

.env.production

NODE_ENV=production
VUE_APP_MODE=production

package.json

    "scripts": {"serve": "vue-cli-service serve","serve-test": "vue-cli-service serve --mode test","build": "vue-cli-service build --mode development","test": "vue-cli-service build --mode test","pro": "vue-cli-service build --mode production","lint": "vue-cli-service lint"},

重新打包后项目正常

2.开发时使用环境变量

只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。你可以在应用的代码中这样访问它们:

console.log(process.env.VUE_APP_MODE)
http://www.lryc.cn/news/7098.html

相关文章:

  • Python 命名规范
  • 操作系统——2.操作系统的特征
  • 【计算机网络期末复习】第六章 应用层
  • TypeScript基本教程
  • 使用Windows API实现本地音频采集
  • 实用的费曼学习法 | 一些思考
  • Linux安装Docker配置docker-compose 编排工具【超详细】
  • iTerm2 + Oh My Zsh 打造舒适终端体验
  • 【scipy.sparse】diags()和dia_matrix()的区别
  • java ssm自行车在线租赁系统idea
  • GAN和CycleGAN
  • 源码项目中常见设计模式及实现
  • KDNM5000-10A-2剩余电流保护器测试仪
  • C++实现线程池
  • 2023最新Java面试手册(性能优化+微服务架构+并发编程+开源框架)
  • 对灵敏度分析技术进行建模(Matlab代码实现)
  • 完整爬虫学习笔记(第一章)
  • 会计师项目管理软件是什么,哪些必不可少的功能
  • 第 8 章 优化
  • 剑指offer -- java题解
  • 若依ruoyi——手把手教你制作自己的管理系统【二、修改样式】
  • 2023.2.14每日一题——455. 分发饼干
  • MySQL入门篇-MySQL常用字符函数小结
  • 解决不同影像裁剪后栅格数据行列不一致问题
  • visual studio2022配置opencv
  • 什么是销售管理?销售管理的五大职能
  • [CVPR‘22] EG3D: Efficient Geometry-aware 3D Generative Adversarial Networks
  • Learning C++ No.9【STL No.1】
  • Apifox推荐-django后台验证token配置
  • SAS应用入门学习笔记6