process.env 为何物

言归正传。 process.env 是 Node.js 中的一个环境对象。其中保存着系统的环境的变量信息。可使用 Node.js 命令行工具直接进行查看。

而 NODE_ENV 就是其中的一个环境变量。这个变量主要用于标识当前的环境(生产环境,开发环境)。默认是没有这个环境变量的,需要自己手动配置。不同系统有不同的环境变量配置方式,在这里就不多加赘述。

NODE_ENV 与 Vue

NODE_ENV 变量只能在系统中配置吗?其实不然。在 Vue 项目中, Vue 提供了自己的配置方式。这就要涉及到 Vue CLI 中模式的概念了。 Vue CLI 文档说明了这个问题。

也就是说,在 Vue 中, NODE_ENV 可以通过 .env 文件或者 .env.[mode] 文件配置。配置过后,运行 Vue CLI 指令( npm run dev(serve) ,npm run build )时,就会将该模式下的NODE_ENV载入其中了。而这些命令,都有自己的默认模式:
npm run dev(serve) ,其实是运行了 vue-cli service serve ,默认模式为 development 。可以在 .env.development 文件下修改该模式的 NODE_ENV 。
npm run build ,其实运行了 vue-cli service build ,默认模式为 production 。可以在 .env.production 文件下修改该模式的 NODE_ENV 。
修改方式如下,以键值对的方式:

除了以上的修改方式外,也可以在命令后直接使用 --mode 参数手动指定模式。当然,每个模式配置的变量也不只有 NODE_ENV , 也可以通过配置其他的变量简化工作流程。

模式的应用

有了模式的概念,就可以根据不同的环境配置模式,就不用每次打包时都去更改 vue.config.js 文件了。比如在测试环境和生产环境, publicPath参数 (部署应用包时的基本 URL) 可能不同。遇到这种情况就可以在 vue.config.js 文件中,将 publicPath 参数设置为:
publicPath: process.env.BASE_URL
设置之后,再在各个 .env.[mode] 文件下对 BASE_URL 进行配置就行了,这样就避免了每次修改配置文件的尴尬。其他的配置也是同理。
Tips: 即使不是生产环境,也可以将模式设置为 production ,这样可以获得 webpack 默认的打包优化。

原文:https://juejin.cn/post/6844904069136416781

process.env详解相关推荐

  1. 【VUE】process.env详解

    process.env 为何物 言归正传. process.env 是 Node.js 中的一个环境对象.其中保存着系统的环境的变量信息.可使用 Node.js 命令行工具直接进行查看. 而 NODE ...

  2. Process类详解

    Process类详解 一.相关类和方法介绍 二.安全风险 1. external processes block on I|O streams 一.相关类和方法介绍 ProcessBuilder是一个 ...

  3. Flink DataStream API 中的多面手——Process Function详解

    https://mp.weixin.qq.com/s/SOCAE-t25DPVlQMxuOT0jw 引言 在Flink的时间与watermarks详解这篇文章中,阐述了Flink的时间与水位线的相关内 ...

  4. 环境变量process.env.NODE_ENV详解

    process.env.NODE_ENV详解 前几天一个月薪35k的兄弟,给我推了一个人工智能学习网站,看了一段时间挺有意思的.包括语音识别.机器翻译等从基础到实战都有,很详细,分享给大家. 一. p ...

  5. Vue中process.env.NODE_ENV详解

    一文弄懂如何在 Vue 中配置 process.env.NODE_ENV 最近在研习 vue.config.js 文件,发现一行,甚是费解. process.env.NODE_ENV 查阅资料后,发现 ...

  6. nodejs 获取系统环境变量_Node.js中环境变量process.env的一些事详解

    前言 最近这两天在和运维GG搞部署项目的事儿.碰到一个问题就是,咱们的dev,uat,product环境的问题. 因为是前后端分离,所以在开发和部署的过程中会有对后端接口的域名的切换问题.折腾了一下午 ...

  7. process.env.NODE_ENV详解

    一. process.env.NODE_ENV是什么? 在node中,有全局变量process表示的是当前的node进程. process.env包含着关于系统环境的信息,但是process.env中 ...

  8. linux ps(process status) 命令详解

    linux ps(process status) 命令详解 功能说明:报告程序状况. 语 法:ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名称> ...

  9. K8S configmap详解:从文件创建、从文件夹创建及以volume、env环境变量的方式在pod中使用

    K8S configmap详解:从文件创建.从文件夹创建及以volume.env环境变量的方式在pod中使用 ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在 ...

  10. python process 函数_Python Process创建进程的2种方法详解

    前面介绍了使用 os.fork() 函数实现多进程编程,该方法最明显的缺陷就是不适用于 Windows 系统.本节将介绍一种支持 Python 在 Windows 平台上创建新进程的方法. Pytho ...

最新文章

  1. 在美人才开始流向中国,因为“硅谷太慢了”
  2. docker搭建harbor私有镜像库
  3. 记录vmware的bug failed to install hcmon deriver
  4. 几何学中关于相交圆的这个定理,你还记得吗?
  5. hdu3555 Bomb 数位dp
  6. bic,orr——设置某些位为0或者1
  7. 简易付微信收款提示支付失败
  8. HTML5 API详解(14):Notification 实现桌面提醒
  9. 【转】linux下安装ssh服务器端及ssh的安全配置
  10. android模拟器与PC的端口映射(转)
  11. 【clickhouse】阿里clickhouse 随便查询一条数据都报错 read time out
  12. JS 数组 Array 对象详解 与 for...of 增强型迭代
  13. python跳出if_python跳出if
  14. python毕业设计作品基于django框架的鲜花水果商城毕设成品(6)开题答辩PPT
  15. 冠状病毒主题网页制作——疫情地图
  16. 宋体和英文字号与matlab中对照,CSS字体中英文名称对照表:如宋体对应SimSun
  17. 用postman GET调试阿里云银行卡二、三、四要素实名认证
  18. 【学习资料分享】光纤KVM坐席管理系统解决方案
  19. PageHelper.startPage();的使用
  20. html403禁止访问怎么解决,http403禁止访问错误产生的原因以及解决办法

热门文章

  1. 图像转换成lmdb格式
  2. Python requirement的使用
  3. 湖南大学夏令营c语言考试题,夏令营试题
  4. 产品经理-自然资源行业4大产品线整理
  5. 企业微信和小程序绑定,获取unionid
  6. 关于勒索软件的硬道理:我们还没有准备好,这是一场与新规则的斗争,而且它的影响还没有接近顶峰。
  7. 报错:Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mjs extension
  8. Hulu新剧 |《成瘾剂量》-- 揭开美国“神药”黑幕
  9. Android APP升级时解析程序包时出现问题
  10. 微信小程序持续集成方案