乐趣区

VSCode-调试Node项目以及设置NODEENV或其他自定义环境变量

前言

之前一直使用 Webstrom 开发 node 项目,Webstrom 开箱即用,内置调试。Webstrom 2019 内存占用时不时就让我 15 年的 Macbook Pro 8G 内存爆满,无奈只能去尝试 VSCode 了。使用 VSCode 已经有一段时间了,这里不对 IDE 做对比和评价,只对使用 VSCode 调试 Node 项目和设置一些常用的环境变量做一下记录。

新建调试

使用 VSCode 打开 Node 项目,点击最右侧“调试”按钮(蜘蛛图案),点击右侧面板“齿轮图标”添加设置,选择“Node.js”,会自动打开一个名为“launch.json”文件,

launch.json 文件

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceFolder}/bin/www"
        }
    ]
}

这个时候点击 debug 面板上的启动按钮就能启动 node 项目了;

添加环境变量

使用 VSCode 调试时,添加环境变量

打开 launch.json , 添加一个“env”key,下面是添加了 NODE_ENV,PORT 变量


{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "node debug",
            "program": "${workspaceFolder}/bin/www",
            "env":{
                "NODE_ENV":"development",
                "PORT":8080,
                "CUSTOM_PARAMS":"foo"
            }
        }
    ]
}

在项目代码中,我们可以使用 process.env.NODE_ENV 获取到变量值,

例如:

// 获取端口
var port = normalizePort(process.env.PORT || '3010');
app.set('port', port);
// 使用 NODE_ENV
if(process.env.NODE_ENV === 'development'){response.status(400).json({error});
 }else{response.status(400).json({error:error.code ? error : this.unknownError(),data});    
 }
npm script 方式添加 node 环境变量

使用 npm script 添加 node 环境变量, 执行 npm run YOUR_SCRIPT 时,加载环境变量
样例如下 package.json 文件:

{
 "scripts": {
    "start": "export NODE_ENV='development'&& export PORT='3010'&& node ./bin/www",
    "build": "export NODE_ENV='production'&& node ./bin/www"
  },
}

使用 pm2 管理 node 项目时, 使用 pm2 start npm -- run YOUR_SCRIPT 方式 启动 node 项目,向 node 中添加环境变量;

 #   -- 和 run 之间有空格
 pm2 start npm -- run build
退出移动版