当process.env.NODE_ENV的值不够用的时候怎么办

前言

我们在实际开发项目的时候,一个项目通常会多于2个版本,也就是开发版本和生产版本之外,还会有本地测试版本、线上测试版本等等若干个版本,这时候,每个版本可能都会对应不同的相关参数,或许数据库的连接地址不同,或许请求的API地址不同等等。为了方便管理,我们通常做成配置文件的形式,根据不同的环境,加载不同的文件。

通常脚手架工具都会提供2个版本,一个是开发版本,一个是生产版本,但这显然不够用,怎么办?

好办,给NODE_ENV增加新的值不就行了。

增加新的值的最简单办法是在package.json里面加,这样,既一目了然,又不入侵src目录的文件。

操作

package.json里往往会有这么一句:

    "dev": "npm run dev",
    "build": "npm run build",

现在我给它增加几个弟兄:

"lan": "export NODE_ENV='lan' && npm run dev",
"online_test": "export NODE_ENV='online_test' && npm run dev",

意思是,如果想生成局域网测试的代码,就执行npm lan就好了,想生成线上测试的代码,就执行npm online_test就好了。export这句的意思一目了然,不解释。

当然了,只这么做还不够,还要你的代码中做对应的匹配,比如在你自己封装的request.js(或者叫http.js或者其他什么名字)里,需要写上大致这样的语句:

switch process.env.NODE_ENV {
  case 'development': ....; break;
  case 'production': ....; break;
  case 'lan': ....; break;
  case 'online_test': ....; break;
}

或者:

const map = {
  development: '...',
  production: '...',
  lan: '...',
  online_test: '...',
}

其他凡是依赖process.env.NODE_ENV的地方,都要有这种代码。

这样无论有多少种环境,也都不用愁了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 下载安装搭建环境 可以选npm安装,或者简单下载一个开发版的vue.js文件 浏览器打开加载有vue的文档时,控制...
    冥冥2017阅读 11,261评论 0 42
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 10,460评论 0 29
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,682评论 1 92
  • C语言: 1、静态全局变量:1、在全局变量前加上 static 关键字,即为静态全局变量2、静态全局变量在程序的数...
    sdgl阅读 12,160评论 0 5
  • 时光匆匆,久世一老师的小说写作课结束了。每个周五听完课总有一种震撼。震撼之余突然觉得之前被小说迷住,都是被套路了。...
    长草的一颗长阅读 5,157评论 0 3