一个前端,爱跑步、爱吉他、爱做饭、爱生活、爱编程、爱南芳姑娘,爱我所爱。世间最温暖又无价的是阳光、空气与爱,愿它们能带你去更远的地方。

  • 文章
  • 心情
  • 照片墙
  • 留言板
  • 工具
  • 友链
  • biaoblog

    专注web开发技术分享

    node环境中设置process环境变量

    技术 173 2020-12-14 14:14

    在看一些前框框架实现的源码的时候,经常会看到类似如下的代码:

    if (process.env.NODE_ENV === 'production') {
      module.exports = require('./prod.js')
    } else {
      module.exports = require('./dev.js')
    }
    

    node中有全局变量process表示当前node进程,process(进程)其实就是存在node中的一个全局变量,process.env包含着关于系统环境的信息。但是process.env中并不存在NODE_ENV这个东西。其实NODE_ENV只是一个用户自定义的变量。

    而具体 process.env.xxx 中的 xxx 是开发者自己定义的。比如:

    process.env.NODE_ENV
    // 或者
    process.env.VUE_CLI_DEBUG = true
    process.env.PORT
    

    下面设置好后就可以使用process.env.NODE_ENV取到


    window 设置环境变量

    set NODE_ENV=dev

    Unix 设置环境变量

    export NODE_ENV=dev

    直接在 js 代码中设置环境变量

    process.env.VUE_CLI_DEBUG = true

    package.json 中设置环境变量

    "scripts": {
      "start-win": "set NODE_ENV=dev && node app.js",
      "start-unix": "export NODE_ENV=dev && node app.js",
     }
    

    解决 window 和 unix 命令不一致的问题

    安装 npm i cross-env –save-dev
    "scripts": {
      "start-win": "cross-en NODE_ENV=dev && node app.js",
     }
    

    学习到的一些细节:

    1.在node环境中的package.json文件中的scripts位置,

    可以自定义一些执行脚本的指令,举例:

      "scripts": {
        "test": "echo \"Error: no test specified\" && node test.js",
      },
    

    意思就是可以使用npm run test来执行输出:Error:no test specified 并 执行test.js文件


    文章评论

    评论列表(0