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

2023-11-10

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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • XGBoost股票预测

    XGBoost 极端梯度提升 Extreme Gradient Boosting XGBoost 有时候也直接叫做XGB 和GBDT类似 也会定义一个损失函数 不同于GBDT的是只会用到一阶导数信息 XGBoost会利用泰勒展开式把损失函数
  • React实现购物车基本功能(React-redux)

    本案例利用react redux实现购物车功能 概括有以下步骤 1 利用react redux操作商品的选中状态 2 全选与取消全选 3 动态reduce计算价格 4 结算取出商品id 演示网址 https zhangyongwnag gi
  • 连接失败_macOS下蓝牙键盘(Keychron K2)连接失败的解决办法

    笔者前段时间被各大科技博主种草购买了一个蓝牙键盘 Keychron K2 但使用经历并非一帆风顺 问题描述 问题1 笔者使用的系统是macOS Mojave 10 14 6 在我初次连接键盘的时候我就发现了一丝丝的不对劲 我按照说明 打开了
  • 1059 C语言竞赛(PAT 乙级 C++实现)

    1059 C语言竞赛 20 point s C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛 既然竞赛主旨是为了好玩 颁奖规则也就制定得很滑稽 0 冠军将赢得一份 神秘大奖 比如很巨大的一本学生研究论文集 1 排名为素数的学生将赢得最好
  • 区块链运作机制_区块链如何运作? 铂 2

    区块链运作机制 This article was originally published on Blockchain Review Thank you for supporting the partners who make SitePo
  • AndroidStudio导入项目作为library

    在项目根目录下建立一个 libraries文件夹 移动你要使用的library project到libraries 目录 为什么 是移动 本人试过复制到工程 但复制过来的库工程里面的src目录下的代码会丢失 注意 你的library pro
  • Android开机启动流程简析

    Android开机启动流程简析 一 文章目录 Android开机启动流程简析 一 前言 一 开机启动的流程概述 二 Android的启动过程分析 1 总体流程 init简述 Zygote简述 前言 在学习Android过程中开机启动是必要了
  • 批量下载百度搜索图片+labelimg制作自己的数据集+转换至Yolo-v5训练数据集

    由于课题需要 需要自己制作数据集进行训练 目前是自己制作的第二个数据集 发现有某些细节已经忘记 记录备忘 同时为后来者提供借鉴 文章以car tank数据集做为例子介绍 整体流程 1 准备数据 从各种途径获取原始数据 博主的car tank
  • 高德地图报错TypeError: undefined is not a constructor

    高德地图在开发聚合和路线规划时报错TypeError undefined is not a constructor evaluating new n Driving map pe found in 经排查 原因是没有引入对应的插件 我们来看
  • IntelliJ IDEA流行的构建工具——Gradle

    IntelliJ IDEA 是java编程语言开发的集成环境 IntelliJ在业界被公认为最好的java开发工具 尤其在智能代码助手 代码自动提示 重构 JavaEE支持 各类版本工具 git svn等 JUnit CVS整合 代码分析
  • 猿如意 Chatgpt的使用规则

    猿如意 Chatgpt 是一种自然语言生成模型 它可以用来自动生成文本内容 使用规则如下 启动猿如意 Chatgpt 模型 输入自然语言文本作为模型的输入 根据模型的输出生成文本内容 可以根据需要修改输入文本或调整模型的参数来得到不同的输出
  • pandas逐行/列 遍历Dataframe的三种方式

    目录 一 pandas DataFrame iterrows 二 pandas DataFrame itertuples 三 pandas DataFrame items pandas 逐行 逐列 遍历数据有以下三种方法 一 pandas
  • Qt学习总结(一)

    一 项目中遇到的问题 1 c 文件中不同类如何共用一个变量 头文件1 h 源文件1 cpp 其他源文件2 cpp 3 cpp这些源文件都包含头文件1 h 方法 在1 h声明全局变量 extern int n 在1 cpp定义该全局变量 in
  • golang性能分析,pprof的使用,graphviz,火焰图

    golang中的pprof的使用 graphviz 一 关于pprof包 go中有pprof包来做代码的性能监控 包括 cpu profile mem profile block profile 在两个地方有包 net http pprof
  • 中文医疗大模型汇总

    写在前面 随着大语言模型的发展 越来越多的垂直领域的LLM发不出来 针对医学这一垂直领域的LLM进行整理 放在这里 希望对大家有一定的帮助吧 还会继续更新 大家有兴趣的话可以持续关注 更多关于中文医疗自然语言处理的资源和论文汇总 请访问我的
  • GoLang学习资源清单

    地鼠文档go语言文档网站通过收集整理go语言相关的学习文档 为大家提供一个学习平台https www topgoer cn 前景 Go语言中文文档https www topgoer com 文档 Gin Web FrameworkGin W
  • pyinstaller 打包.py文件生成exe(含转换.py文件为.pyd,保护源码,适合发布程序or论文复现用)

    文章目录 操作详情 1 安装Cython 2 修改调用外部数据or文件的 py文件 4 在命令行运行python setup py build ext inplace 5 创建main py文件 import 所有用到的包 写一个main
  • 数据库分表策略

    1 垂直划分 将数据表中的某些字段提出 组成新的数据表 将群组id 专辑id 音乐id提出 组成gzm数据表 而将 群组 专辑 音乐的详细信息单独放在其他数据表中 在求取索引 关系时 操作数据库效率更高 2 水平划分 2 1物理上的水平切分
  • 2018蓝桥杯B组国赛

    1 标题 三角形面积 已知三角形三个顶点在直角坐标系下的坐标分别为 2 3 2 5 6 4 3 1 5 1 7 2 求该三角形的面积 注意 要提交的是一个小数形式表示的浮点数 要求精确到小数后3位 如不足3位 需要补零 思路 利用两点求距离
  • vue项目(vue-cli)配置环境变量和打包时区分开发、测试、生产环境

    1 打包时区分不同环境 在自定义配置Vue cli 的过程中 想分别通过 env development env test env production 来代表开发 测试 生产环境 NODE ENV development NODE ENV