esbuild plugin to load a .env file from the current directory or any parent. It will combine the environment variables with existing/system-wide process.env variables.
npm install esbuild-envfile-pluginnpm install esbuild esbuild-envfile-plugin dotenv --save-dev`
In esbuild script:
`
const envFilePlugin = require('esbuild-envfile-plugin');
require('esbuild').build({
plugins: [envFilePlugin]
});
`
Usage in project:
`
import { SOME_ENV_VARIABLE } from 'env';
// or:
import * as env from 'env';
//env.SOME_ENV_VARIABLE;
`
Example esbuild script:
`
// Config: relative to where npm command is run:
const APP_BASE = 'src';
const ENTRY_FILE = 'index.ts';
const OUTPUT_DIR = 'build';
const OUTPUT_FILE = 'app.js';
const IS_DEV = true;
const TARGET = 'es2018';
function build(entryFile, outFile) {
require('esbuild').build({
entryPoints: [entryFile],
outfile: outFile,
platform: 'node',
bundle: true,
define: { "process.env.NODE_ENV": IS_DEV ? "\"development\"" : "\"product\"" },
target: TARGET,
logLevel: 'silent',
plugins: [envFilePlugin] // < USAGE
})
.then(r => { console.log("Build succeeded.") })
.catch((e) => {
console.log("Error building:", e.message);
process.exit(1)
})
}
build(${APP_BASE}/${ENTRY_FILE}, ${OUTPUT_DIR}/${OUTPUT_FILE});
``