docs: function getRearEnv () {
    // Instead of using 'dotenv.config()' to automatically load
    // the local .env file content, we read and parse the file manually to avoid
    // polluting 'process.env'.
    if (!dotenvEnv && fs.existsSync(dotenvFile)) {
      dotenvEnv = dotenv.parse(fs.readFileSync(dotenvFile));
    }
  
    // read local 'package.json' once and flatten its content
    // into a key/value dictionary
    if (!packageJsonEnv) {
      packageJsonEnv = toDictionary(
        require('./get-package-json')()
      );
    }
  
    const mergedEnv = Object.assign({}, process.env, packageJsonEnv, dotenvEnv);
    // filters rear-only environment variables
    // from 'process.env', '.env' and 'package.json'
    // (NODE_ENV is also carried over)
    return Object.keys(mergedEnv)
      .filter(key => REAR_ENV.test(key))
      .reduce((env, key) => {
        env[key] = mergedEnv[key];
        return env;
      }, {
        // Useful for determining the environment we're running in.
        NODE_ENV: process.env.NODE_ENV || 'development',
      });
  }