以前一直使用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