Hi all,
I don’t usually announce individual packages when I publish them, but one came together last night that was particularly nice, and which I’ve been struggling with for the better part of the past two years: clinical:env.
It’s a package which basically swaps out Meteor.settings
functionality with environment variables, which helps with creating 12 factor apps that can run between SaaS hosting providers, and is a mashup of all the best parts of the following packages:
pauldowman:dotenv
mrt:environment-hooks
mrt:allow-env
panphora:environment-template-helpers
jboulhous:dev
A big shout out to Mike Bannister, Tom Wijsman, Paul Dowman, David Miranda, Neil MacMunn, Jamal Boulhous, Gadi Cohen, and Arunoda. This package wouldn’t have happened without their work.
API includes:
- Env.allow()
- Env.isProduction
- Env.isDevelopment
- Env.isTraining
- Env.isTesting
- Env.isStaging
- Isomorphisms across client and server
- Template helpers
None of what’s in clinical:env
is particularly new; but it’s now all in one place, in an expanded and unified API, and under a supported package (for those packages still in the mrt namespace).
Take it for a spin, and kick the tires. We’re still working out how NODE_ENV and METEOR_ENV should play together; and the template helpers were added last-minute. So, if there are any bugs, please let me know or submit a pull-request.
But otherwise, it seems to be working quite nicely on my apps; and I finally feel comfortable with what’s happening with environment variables.
Cheers,
Abigail