Package Exports
- execution-environment
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (execution-environment) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
execution-environment
This module serves as a helper to expose the current execution environment by reading NODE_ENV
environment variable.
Installation
$ npm install execution-environment --save
Example usage
When writing a module, you may want to add conditional logic based on the execution environment. By default, the module sets default values for the dev
, test
and prod
environments:
Default Values
- isDev: ['dev', 'development']
- isTest: ['test']
- isProd: ['prod', 'production']
var environment = require('environment');
var Ajax = {
get: function(method, path, params) {
if (environment.isTest()) {
throw new Error('Attempted to make a network call in the test environment. Shame!');
}
fetch(method, path, params);
}
};
module.exports = Ajax;
When Ajax#get
is executed in the test environment (defined by setting NODE_ENV=test), environment.isTest()
will return true.
Additionally, custom environments and values can be registered on the environment module using registerEnvironments
. The following code will register staging
and canary
environments, which will look for ['staging', 'stg']
and ['canary']
NODE_ENV values, respectively. Code that modifies the environment keys and values should live in a setup or config file rather modules that are require
environment.
var environment = require('environment');
environment.registerEnvironments({
staging: ['staging', 'stg'],
canary: ['canary']
});
Usage with custom environments
var environment = require('environment');
var Tracking = {
trackEvent: function(name, category, payload) {
if (environment.staging() || environment.canary()) {
return;
}
trackEsp(name, category, payload);
}
};
module.exports = Tracking;