Registry / devops / rollup-plugin-invariant

rollup-plugin-invariant

JSON →
library0.9.2jsnpmunverified

Rollup plugin that strips invariant(condition, message) calls in production builds. v0.9.2 (stable, infrequent releases). It transforms invariant calls into empty statements when process.env.NODE_ENV is 'production', removing both the condition evaluation and message string. Unlike general dead-code elimination, this plugin specifically targets the invariant pattern without relying on Terser or manual tree-shaking, ensuring zero runtime overhead in production. Works with rollup >=1.0 and ships TypeScript types.

npm install rollup-plugin-invariant
INSTALL
IMPORT
SIG · ROLLUP-PLUGIN-INVA
R
rollup-plugin-invariant
devopsjavascriptv0.9.2
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18223 runs
build_error
glibc
node 18223 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
import invariantPlugin from 'rollup-plugin-invariant'
const invariantPlugin = require('rollup-plugin-invariant')
The package exports a single function; default import is correct. CJS require works but is not the recommended ES module syntax.
invariantPlugin
import invariantPlugin from 'rollup-plugin-invariant'
import { invariantPlugin } from 'rollup-plugin-invariant'
Named export does not exist; use default import.
invariantPlugin (used in rollup.config)
import invariant from 'rollup-plugin-invariant'
import { default as invariantPlugin } from 'rollup-plugin-invariant'
You can rename the default import to any name; common is 'invariant' (unrelated to the 'invariant' package).

Configures rollup-plugin-invariant in a rollup config, showing include/exclude options and production flag override.

// rollup.config.js import invariantPlugin from 'rollup-plugin-invariant'; export default { input: 'src/index.js', output: { dir: 'dist', format: 'esm' }, plugins: [ invariantPlugin({ // Default: include all files include: ['**/*.js'], // Optionally exclude node_modules exclude: ['node_modules/**'], // Force production mode (default: process.env.NODE_ENV === 'production') production: true }) ] };
Debug
Known issues
gotchaPlugin only works with the 'invariant' package from npm; custom invariant functions are not stripped.
fix
Ensure you import invariant from 'invariant' (or '@apollo/query-planner' which re-exports it).
affects: >=0.1.0
gotchaThe plugin does not support CommonJS output (or only transforms ES modules?). Check compatibility with your output format.
fix
Prefer ES module output or test with CJS. Consider using @rollup/plugin-commonjs to convert dependencies.
affects: >=0.1.0
Errors
Common errors & fixes
Error: Unknown plugin options: include, exclude
Using options 'include' and 'exclude' as top-level plugin options instead of nested under 'invariantPlugin'.
fix
Options are passed as object to the plugin function: invariantPlugin({ include: ... })
Upgrade
Version history
0.9.2latest on npm
Audit
Dependencies
@rollup/pluginutilsrequiredused for creating filter function from include/exclude options
invariantrequiredpeer dependency; the invariant package that provides the function to be stripped
Agent activity
7 hits · last 30 days
node
6
Resources
rollup-plugin-invariant — npm install rollup-plugin-invariant · libregistry