{"id":22082,"library":"rollup-plugin-inject-process-env","title":"rollup-plugin-inject-process-env","description":"Rollup plugin to inject process.env environment variables into browser bundles. Version 1.3.1 supports any JSON-serializable value (not just strings), handles all access patterns including bracket notation and destructuring, and works with include/exclude minimatch patterns. Unlike rollup-plugin-replace, it avoids lint issues from string-to-string substitution. Requires placement after @rollup/plugin-commonjs when used together. Ships TypeScript types.","status":"active","version":"1.3.1","language":"javascript","source_language":"en","source_url":"https://github.com/badcafe/rollup-plugin-inject-process-env","tags":["javascript","rollup","plugin","rollup-plugin","process","env","process.env","environment variables","inject","typescript"],"install":[{"cmd":"npm install rollup-plugin-inject-process-env","lang":"bash","label":"npm"},{"cmd":"yarn add rollup-plugin-inject-process-env","lang":"bash","label":"yarn"},{"cmd":"pnpm add rollup-plugin-inject-process-env","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Used for include/exclude pattern matching","package":"@rollup/pluginutils","optional":false}],"imports":[{"note":"Default export; ESM-only since v1. CommonJS require will not work. TypeScript types are included.","wrong":"const injectProcessEnv = require('rollup-plugin-inject-process-env')","symbol":"injectProcessEnv","correct":"import injectProcessEnv from 'rollup-plugin-inject-process-env'"},{"note":"Type-only import; do not use value import for types.","wrong":"import { RollupPluginInjectProcessEnvOptions } from 'rollup-plugin-inject-process-env'","symbol":"RollupPluginInjectProcessEnvOptions","correct":"import type { RollupPluginInjectProcessEnvOptions } from 'rollup-plugin-inject-process-env'"},{"note":"injectProcessEnv is a function, not a class. Do not use 'new'.","wrong":"new injectProcessEnv({ NODE_ENV: 'production' })","symbol":"injectProcessEnv (as plugin)","correct":"injectProcessEnv({ NODE_ENV: 'production' })"}],"quickstart":{"code":"import injectProcessEnv from 'rollup-plugin-inject-process-env';\nimport commonjs from '@rollup/plugin-commonjs';\nimport resolve from '@rollup/plugin-node-resolve';\nimport typescript from '@rollup/plugin-typescript';\n\nexport default {\n  input: 'src/index.ts',\n  output: {\n    file: 'dist/bundle.js',\n    format: 'iife'\n  },\n  plugins: [\n    typescript(),\n    commonjs(),\n    injectProcessEnv({\n      NODE_ENV: process.env.NODE_ENV ?? 'development',\n      API_URL: JSON.parse(process.env.API_URL ?? '\"http://localhost:3000\"'),\n      DEBUG: false\n    }),\n    resolve()\n  ]\n};","lang":"typescript","description":"Shows basic usage with Rollup config using TypeScript, CommonJS, and resolve plugins. Plugin order matters: injectProcessEnv must come after commonjs."},"warnings":[{"fix":"Move injectProcessEnv() after commonjs() in the plugins list.","message":"Plugin must be placed after @rollup/plugin-commonjs in plugins array, otherwise you'll get 'import' and 'export' may only appear at the top level error.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use default import only: import injectProcessEnv from 'rollup-plugin-inject-process-env'","message":"The default export name changed from 'injectProcessEnv' to 'injectProcessEnv' (same) but no longer supports named exports. Older versions had both default and named exports.","severity":"deprecated","affected_versions":"<1.3.0"},{"fix":"Combine with dotenv or load environment variables manually before calling injectProcessEnv.","message":"This plugin does not read .env files automatically. You must pass the env object explicitly.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Place injectProcessEnv after replace in the plugins array.","message":"When using with @rollup/plugin-replace, order matters. injectProcessEnv should run after replace to avoid conflicts.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Install and import a globalThis polyfill like @ungap/global-this.","message":"globalThis may be undefined in older browsers/environments, causing runtime errors.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Reorder plugins so that commonjs() appears before injectProcessEnv()","cause":"injectProcessEnv was placed before @rollup/plugin-commonjs in the plugins array.","error":"'import' and 'export' may only appear at the top level"},{"fix":"Add a polyfill for globalThis, e.g., import '@ungap/global-this' at the top of your entry file.","cause":"The target environment does not support globalThis.","error":"'globalThis' is undefined"},{"fix":"Run `npm install --save-dev rollup-plugin-inject-process-env` and use ESM import syntax.","cause":"Package not installed or require() used instead of import.","error":"Cannot find module 'rollup-plugin-inject-process-env'"},{"fix":"Ensure injectProcessEnv is called in the plugins array with the correct env object.","cause":"The plugin was not applied correctly or the bundle is run in a browser without the injection.","error":"process.env is not defined"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}