美文网首页让前端飞Web前端之路
roadhog配置环境变量自动区分测试、正式环境(cross-e

roadhog配置环境变量自动区分测试、正式环境(cross-e

作者: 虚拟J | 来源:发表于2020-08-03 18:25 被阅读0次

    前端工程化中的自动化角度(任何简单机械的重复劳动都应该让机械去完成)思考,发现了目前应用存在的缺陷——测试、正式环境都是手动去切换的,这样子万一忘记了,就很容易出现问题。

    console.log(process.env.NODE_ENV)
    

    打印可以看到 roadhog 针对特定环境的环境变量。开发环境下是 development,生产环境下是 production。

    但这不能满足我们想要区分测试、正式环境,需增加环境变量。

    添加环境变量

    在.webpackrc.js中的define里添加:

      define: { //定义环境变量中的值
        "process.env": {
          API_ENV: process.env.API_ENV,
        }
    
    设置环境变量的值(针对 Windows)

    接下来启动本地服务或者打包的时候,设置对应的环境变量。

     "scripts": {
        "start": "set API_ENV=t &&roadhog server",
        "startP": "set API_ENV=p &&roadhog server",
        "buildT": "set API_ENV=t &&roadhog build",
        "buildP": "set API_ENV=p &&roadhog build",
      },
    

    然后就可以通过 process.env.API_ENV 去获取到环境变量的值,然后切换到对应的测试、正式环境了。

    设置环境变量的值(跨平台——cross-env)
    npm上的文档 git上的文档

    可以看到,如果 roadhog 的文档是在 npm()上查看,而不是在 git ()上查看的话,会少一块内容——跨平台设置环境变量的方法。

    cross-env 是运行跨平台设置和使用环境变量的脚本。
    可以使用单个命令,而不必担心为平台正确设置或使用环境变量。

      "scripts": {
        "start": "cross-env API_ENV=t roadhog server",
        "startP": "cross-env API_ENV=p roadhog server",
        "buildT": "cross-env API_ENV=t roadhog build",
        "buildP": "cross-env API_ENV=p roadhog build",
      },
    

    相关文章

      网友评论

        本文标题:roadhog配置环境变量自动区分测试、正式环境(cross-e

        本文链接:https://www.haomeiwen.com/subject/uskrrktx.html