2017-02-15 86 views
0

我已經創建了我可以在本地運行,並在雲中 現在我想將它做在某種程度上更流暢和更清潔的節點應用,所以我儘量把一些財產config.json文件來檢查,如果我要部署的應用程序或在本地使用它,但我需要手動更新該屬性之前,我改變建議,有一個更好的方式與節點做呢?如何在節點屬性用於部署和本地使用

let runnerServer = `http://localhost:8060/service/runner/${server.address().port}`; 
if (cfg.isHosted) { 
    blogServer = `http://${serverName}/service/runner/${server.address().port}`; 
} 

,並在conig.json我已經isHosted領域,我手動更改(真/假),如果我要部署或不...

更新

也許我可以使用process.env.PORT,但這只是我需要在我的代碼中使用的一個示例,目前我有幾個fork需要知道如果在部署中運行或本地運行..

回答

0

一個選項是在構建的對象01中使用使用節點(https://nodejs.org/api/process.html)和使用兩個配置文件本身。這種方法有點類似於你在做什麼,但可能是清潔

  1. config.localhost.json
  2. config.production.json

然後基於此對象上設置屬性環境如process.env.NODE_ENV = 'localhost'process.env.NODE_ENV = 'production',你可以讀取相應的文件導入配置。

var config = require('./config.production.json'); 
if(process.env.NODE_ENV === 'localhost') 
{ 
    config = require('./config.localhost.json'); 
} 

所以在您的開發框在本地運行時設置此環境變量,如果

OSX - 然後在終端export NODE_ENV=localhost

WINDOWS - 然後在CMD線set NODE_ENV=localhost

0

一個簡單的方法要解決這個問題,如果每一個環境配置可以在回購:

config.json

production: { 
    // prod config 
}, 
staging: { 
    // staging config 
}, 
devel: { 
    // devel config 
} 

config.js

const environment = process.env['ENV'] || 'devel'; 
module.exports = require('./config.json')[environment]; 

然後在您的package.json,你可以添加以下腳本:

包。JSON

// npm stuff 
scripts { 
    prod: "ENV=production node index.js", 
    stage: "ENV=staging node index.js", 
    dev: "ENV=devel node index.js" 
} 

,並用此設置,您可以運行下面的命令每個配置:

  • 生產npm run prod
  • 分期npm run stage
  • devel的npm run dev
相關問題