process 全局变量

  1. processNodejs 的全局变量,它返回一个包含用户环境信息的对象,如果需要给 Nodejs 设置一个环境变量,并把它挂载在 process.env 返回的对象上,便可以在代码中进行相应的环境判断;
  2. 如果想用 process.env.NODE_ENV,就必须先设置其值才能用,可以通过设置 package.jsonscripts 来实现;

问题

Windows 系统和 Mac 系统它们的语法都不尽相同,那么问题又来了,在 Windows 开发部署的项目,可能在 Mac 系统无法正常打包,反之亦然;

Windows 系统

// package.json
{
  "scripts": {
    "dev": "set NODE_ENV=development &&  webpack-dev-server --open --hot",
    "build": "set NODE_ENV=production &&   --progress --hide-modules"
  }
}

Mac 系统

// package.json
{
  "scripts": {
    "dev": "export NODE_ENV=development &&  webpack-dev-server --open --hot",
    "build": "export NODE_ENV=production &&   --progress --hide-modules"
  }
}

利用库来解决以上问题

cross-env 插件

  1. cross-env 是一个跨平台设置环境变量的第三方包,它可以让你只配置一行命令,就能轻松地在多个平台设置环境变量;

  2. 安装使用:npm install cross-env --save-dev

    JSON
    JavaScript
    // package.json
    {
      "scripts": {
        "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
        "build": "cross-env NODE_ENV=production webpack --mode=production  --progress --hide-modules"
      },
    }
    
    // 项目中使用
    console.log(process.env.NODE_ENV);
    

dotenv 插件

  1. dotenv 是一个零依赖的模块,它能将环境变量中的变量从 .env 文件加载到 process.env 中,使用 dotenv 可以让我们免于在各个文件中引入配置文件,也可以很好的解决敏感信息的泄漏,利于后期代码维护;

  2. 安装使用:npm install dotenv --save-dev

    BASH
    JavaScript
    # 根目录下创建 .env 文件
    
    # 主机
    HOST=localhost
    # 端口号
    PORT=3002
    
    // 入口文件 main.js 引入 dotenv 并可全局使用
    require('dotenv').config({ path: '.env' });
    // 使用
    console.log(process.env.HOST); // localhost
    console.log(process.env.PORT); // 3000
    
打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. process 全局变量
  2. 2. 问题
    1. 2.1. Windows 系统
    2. 2.2. Mac 系统
  3. 3. 利用库来解决以上问题
    1. 3.1. cross-env 插件
    2. 3.2. dotenv 插件