esbuild-plugin-env
Version:
ESbuild plugin that setup environment variables using dotenv
33 lines (29 loc) • 859 B
JavaScript
const dotenv = require("dotenv")
dotenv.config()
/**
* Set Environment function.
*
* @param {import("./index").Option} [props] - Overwrite Options.
* @returns {import("esbuild").Plugin}
*/
module.exports = function (props) {
return {
name: "env",
setup: (build) => {
const options = build.initialOptions
const define = options.define ?? {}
const isProd = props?.isProd ?? options.minify
for (const k in process.env) {
if (k.startsWith(`${props?.startKey ?? "ESB"}_`))
define[`process.env.${k}`] = JSON.stringify(process.env[k])
}
options.define = {
"process.env.NODE_ENV": isProd ? '"production"' : '"development"',
"process.env.PROD": isProd ? "true" : "false",
"process.env.DEV": !isProd ? "true" : "false",
...define,
}
},
}
}