수색…
고급 환경 구성
보다 복잡한 응용 프로그램의 경우 여러 환경 변수를 사용하여 "settings.json"객체를 빌드해야합니다.
if(Meteor.isServer){
Meteor.startup(function()){
// this needs to be run on the server
var environment, settings;
environment = process.env.METEOR_ENV || "development";
settings = {
development: {
public: {
package: {
name: "jquery-datatables",
description: "Sort, page, and filter millions of records. Reactively.",
owner: "LumaPictures",
repo: "meteor-jquery-datatables"
}
},
private: {}
},
staging: {
public: {},
private: {}
},
production: {
public: {},
private: {}
}
};
if (!process.env.METEOR_SETTINGS) {
console.log("No METEOR_SETTINGS passed in, using locally defined settings.");
if (environment === "production") {
Meteor.settings = settings.production;
} else if (environment === "staging") {
Meteor.settings = settings.staging;
} else {
Meteor.settings = settings.development;
}
console.log("Using [ " + environment + " ] Meteor.settings");
}
});
}
METEOR_SETTINGS을 (를) 사용하여 앱 매개 변수 지정하기
METEOR_SETTINGS 환경 변수는 JSON 오브젝트를 허용 할 수 있으며 해당 오브젝트를 Meteor.settings
오브젝트에 표시합니다. 먼저 몇 가지 구성 정보로 settings.json
을 앱 루트에 추가하십시오.
{
"public":{
"ga":{
"account":"UA-XXXXXXX-1"
}
}
}
그런 다음 설정 파일을 사용하여 응용 프로그램을 시작해야합니다.
# run your app in local development mode with a settings file
meteor --settings settings.json
# or bundle and prepare it as if you're running in production
# and specify a settings file
meteor bundle --directory /path/to/output
cd /path/to/output
MONGO_URL="mongodb://127.0.0.1:27017" PORT=3000 METEOR_SETTINGS=$(cat /path/to/settings.json) node main.js
이 설정은 Meteor.settings에서 액세스하여 앱에서 사용됩니다.
Meteor.startup(function(){
if(Meteor.isClient){
console.log('Google Analytics Account', Meteor.settings.public.ga.account);
}
});
서버의 환경 감지
환경 변수는 process.env
객체를 통해 서버에서도 사용할 수 있습니다.
if (Meteor.isServer) { Meteor.startup(function () { // detect environment by getting the root url of the application console.log(JSON.stringify(process.env.ROOT_URL)); // or by getting the port console.log(JSON.stringify(process.env.PORT)); // alternatively, we can inspect the entire process environment console.log(JSON.stringify(process.env)); }); }
Meteor 메소드를 사용한 클라이언트 환경 탐지
서버에서 환경을 감지하려면 서버가 어떤 환경에 있는지를 확인한 다음 클라이언트에서 도우미 메서드를 호출 할 때 서버에서 도우미 메서드를 만들어야합니다. 기본적으로 서버에서 클라이언트로 환경 정보를 전달합니다.
//------------------------------------------------------------------------------------------------------
// server/server.js
// we set up a getEnvironment method
Meteor.methods({
getEnvironment: function(){
if(process.env.ROOT_URL == "http://localhost:3000"){
return "development";
}else{
return "staging";
}
}
});
//------------------------------------------------------------------------------------------------------
// client/main.js
// and then call it from the client
Meteor.call("getEnvironment", function (result) {
console.log("Your application is running in the " + result + "environment.");
});
NODE_ENV를 사용한 클라이언트 환경 감지
Meteor 1.3부터 Meteor는 기본적으로 클라이언트의 NODE_ENV
변수를 노출합니다.
if (Meteor.isClient) { Meteor.startup(function () { if(process.env.NODE_ENV === "testing"){ console.log("In testing..."); } if(process.env.NODE_ENV === "production"){ console.log("In production..."); } }); }
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow