以前一直使用Webstrom开发node项目,Webstrom开箱即用,内置调试。Webstrom 2019内存占用时不时就让我15年的Macbook Pro 8G 内存爆满,无奈只能去尝试VSCode 了。使用VSCode已经有一段时间了,这里不对IDE作对比和评价,只对使用VSCode调试Node项目和设置一些经常使用的环境变量作一下记录。node
使用VSCode打开Node项目,点击最右侧“调试”按钮(蜘蛛图案),点击右侧面板“齿轮图标”添加设置,选择“Node.js”,会自动打开一个名为“launch.json”文件,shell
launch.json文件npm
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "program": "${workspaceFolder}/bin/www" } ] }
这个时候点击debug面板上的启动按钮就能启动node项目了;json
打开 launch.json
, 添加一个 “env” key,下面是添加了 NODE_ENV
,PORT
变量app
{ "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
获取到变量值,ui
例如:this
// 获取端口 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 run YOUR_SCRIPT
时,加载环境变量
样例以下package.json文件:spa
{ "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中添加环境变量;debug
# -- 和 run 之间有空格 pm2 start npm -- run build