Package Exports
- babel-plugin-inline-dotenv
- babel-plugin-inline-dotenv/src/index.js
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 (babel-plugin-inline-dotenv) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
babel-plugin-inline-dotenv
Load your .env
file and replace process.env.MY_VARIABLE
with the value you set.
tl;dr
It actually replaces process.env.MY_VARIABLE
with:
process && process.env && process.env.MY_VARIABLE || 'value assigned to variable in dotenv'
This way, if the value is available at runtime it will be used instead.
Installation
$ npm install babel-plugin-inline-dotenv
Usage
Via .babelrc
(Recommended)
Without options:
.babelrc
{
"plugins": ["inline-dotenv"]
}
With options:
{
"plugins": [["inline-dotenv",{
path: 'path/to/.env' // See motdotla/dotenv for more options
}]]
}
To replace with env value without process && process.env && process.env.MY_VARIABLE ||
safety:
{
"plugins": [["inline-dotenv",{
unsafe: true
}]]
}
The plugin support 3 mode to read the env var from the system :
{
"plugins": [["inline-dotenv",{
systemVar: 'all' | 'overwrite' | 'disable'
}]]
}
all
default, every env var found in process.env will be used⚠️ This could leak super secret stuffs !
overwrite
, the value in process.env will overwrite the one present in .env only. Your .env file act as a whitelistdisable
, the process.env will not be used at all
Via CLI
$ babel --plugins inline-dotenv script.js
Via Node API
require("babel-core").transform("code", {
plugins: ["inline-dotenv"]
});