loose-envify (1) - Linux Manuals

loose-envify: replace Node.js environment variables with plain strings


loose-envify - replace Node.js environment variables with plain strings


loose-envify <javascript_source_file.js>


Performs a Javascript source-to-source transformation (transpiling), that efficiently replaces Node.js process.env environment variables with plain strings. This makes the environment variable checks faster and easier to optimize out.


Running this source code:

if (process.env.NODE_ENV === "development") {
  console.log('development only')

through loose-envify:

loose-envify index.js > bundle.js

with NODE_ENV set to production results in:

if ("production" === "development") {
  console.log('development only')

which, when run through a minifier, would be stripped out completely.

However, if you run the same script through loose-envify with NODE_ENV set to development it gives:

if ("development" === "development") {
  console.log('development only')

The if statement will evaluate to true, so the code won't be removed.


Andres Suarez <zertosh [at] gmail.com>


This manual page was written by Paolo Greppi <paolo.greppi [at] libpf.com> for the Debian project (and may be used by others), also based on material from the envify README (https://github.com/hughsk/envify) by Hugh Kennedy <hughskennedy [at] gmail.com> and the envify contributors.