標籤:實現 UI 環境配置 資訊 top var javascrip 命令 程式碼
最近在部署Node.js程式時,寫了段簡單的指令碼,發覺還挺簡單的,忍不住想與大家分享。
設定檔
首先,本地測試環境和生產環境的資料庫連接這些配置資訊是不一樣的,需要將其分開為兩個檔案儲存體 到config
目錄下,比如:
開發環境設定檔config/development.js
:
module.exports = { port: 3001, mysql: { user: ‘root‘ }};
生產環境設定檔config/production.js
:
module.exports = { port: 80, mysql: { user: ‘myapp‘, password: ‘2zbonsjzl305vkh3‘ }};
另外還要建立一個程式自動載入相應環境的配置,檔案config/index.js
:
var path = require(‘path‘);// 通過NODE_ENV來設定環境變數,如果沒有指定則預設為生產環境var env = process.env.NODE_ENV || ‘production‘;env = env.toLowerCase();// 載入設定檔var file = path.resolve(__dirname, env);try { var config = module.exports = require(file); console.log(‘Load config: [%s] %s‘, env, file);} catch (err) { console.error(‘Cannot load config: [%s] %s‘, env, file); throw err;}
假設應用的入口檔案是app.js
,可通過以下方法載入配置:
var config = require(‘./config‘);console.log(‘listen on port %s‘, config.port);// 如果是開發環境,將輸出 listen on port 3001// 如果是生產環境,將輸出 listen on port 80
本地開發測試
為了方便,我建立一個指令檔run
,代碼如下:
export NODE_ENV=developmentnode app
要啟動程式,直接在命令列下執行./run
即可。
部署應用
建立部署指令檔deploy
,代碼如下:
git reset --hardgit pull origin HEADnpm installpm2 stop myapp -fpm2 start app.js -n myapp
此段代碼會自動拉去git倉庫中最新的一次提交的代碼,並使用npm來安裝package.json中列出的模組, 然後先停止之前已啟動的應用執行個體,再啟動。
為了方便傳輸代碼到伺服器端,需要將程式碼提交到一個私人的git倉庫,首次在伺服器端部署時, 需要先將代碼clone到伺服器端,比如:
git clone git[@github](/user/github).com:leizongmin/node-uc-server.git ~/myapp
應用在伺服器端運行時使用pm2
工具來管理進程,所以還需要先在伺服器上安裝此工具:
npm install pm2 -g
完成以上準備工作後,我們就可以通過deploy
指令碼來實現自動更新代碼:
- 將本地修改提交到遠程git倉庫
- 登入伺服器,進入
~/myapp
目錄
- 執行
./deploy
以上程式執行的環境為Linux,如果開發環境是Windows,需要將run
檔案改為以下代碼:
set NODE_ENV=developmentnode app
一種簡單的生產環境部署Node.js程式方法