deployment - mongo_url - meteor up
¿Cómo sabe una aplicación de meteorito si se está ejecutando en un entorno de desarrollo, prueba o producción? (6)
Desde Meteor 1.3 estas banderas funcionan de la caja:
Meteor.isDevelopment
Meteor.isProduction
Meteor.isTest
Meteor.isAppTest
Necesito usar configuraciones de proveedores de cuentas diferentes cuando la aplicación de meteoritos se ejecuta como entorno de desarrollo, prueba o producción.
En el servidor:
var inDevelopment = function () {
return process.env.NODE_ENV === "development";
};
var inProduction = function () {
return process.env.NODE_ENV === "production";
};
Meteor establece la variable de entorno NODE_ENV en "desarrollo" cuando ejecuta meteor
. En producción, puede establecer la variable a lo que desee, de lo contrario se establecerá de forma predeterminada en "producción".
Actualización : Creé un paquete inteligente para permitir que esto funcione en el cliente y el servidor.
mrt add allow-env
Simplemente establece reglas de permiso en un archivo de servidor.
allowEnv({
NODE_ENV: 1
});
Hay una solicitud de extracción abierta en github que permitiría eso. Comenta / Vota por ello, ¡así que es más probable que te incluyan!
Muy fácil. Estoy ejecutando mi aplicación en cinco (diferentes) entornos diferentes. Simplemente utilizo una instrucción switch en el ROOT_URL como se muestra a continuación para cuatro entornos diferentes. Por supuesto, puede usar un if-else si solo tiene dos entornos. Funciona en el servidor. Simplemente cree un nuevo archivo llamado startup.js y use el siguiente ejemplo de código. ¡Aclamaciones!
switch (process.env.ROOT_URL) {
case "http://www.production.com/":
BLOCK OF CODE HERE
break;
case "http://www.staging.com/":
BLOCK OF CODE HERE
break;
case "http://www.development.com/":
BLOCK OF CODE HERE
break;
case "http://localhost:3000/":
BLOCK OF CODE HERE
break;
}
En general, el formato para una instrucción switch en javascript es
switch(expression) {
case n:
code block
break;
case n:
code block
break;
default:
default code block
}
ACTUALIZACIÓN: Meteor.absoluteUrl()
cuenta que Meteor ahora proporciona Meteor.absoluteUrl()
, que es similar a process.env.ROOT_URL
con la adición de funcionalidad adicional. Ver docs .
Puede usar Meteor.settings
junto con la opción --settings
utilizada cuando se ejecuta meteor run
o meteor deploy
.
Por ejemplo, para ejecutar en modo dev
, cree un archivo JSON, llámelo meteorConfigDev.json y coloque lo siguiente en él:
{
"public" : {
"mode" : "dev"
},
"anotherProperty" : "anotherValue"
}
Ejecute su aplicación usando
meteor --settings meteorConfigDev.json
En el servidor y en el cliente puede acceder al "modo" usando:
Meteor.settings.public.mode //in this case it will be "dev"
Tenga en cuenta que las configuraciones en "público" están disponibles tanto en el servidor como en el cliente, mientras que todo lo demás (en este caso, "otra Propiedad") solo está disponible en el servidor.
A continuación, puede tener diferentes archivos de configuración para sus diferentes entornos.
Una manera realmente desordenada de lograr esto
https://github.com/possibilities/meteor-environment-hooks
nota: la interfaz está bien en mi humilde opinión, la implementación es desordenada