rollup-plugin-keep-import
raw JSON → 1.0.3 verified Mon Apr 27 auth: no javascript
A Rollup plugin that preserves import statements in the output bundle, useful for dynamic imports or retaining external dependencies as imports. Current stable version: 1.0.3. Released via semantic-release, active development. Key differentiator: unlike Rollup's default behavior of bundling imports, this plugin keeps them as is, similar to renderDynamicImport, enabling partial bundling for micro-frontends or runtime module loading.
Common errors
error Error [ERR_REQUIRE_ESM]: require() of ES Module ↓
cause Using CommonJS require() to import the package (ESM-only).
fix
Change to import syntax or set type: 'module' in package.json.
error TypeError: keepImport is not a function ↓
cause Destructuring import with named import (e.g., import { keepImport }).
fix
Use default import: import keepImport from 'rollup-plugin-keep-import'.
Install
npm install rollup-plugin-keep-import yarn add rollup-plugin-keep-import pnpm add rollup-plugin-keep-import Imports
- default wrong
const keepImport = require('rollup-plugin-keep-import')correctimport keepImport from 'rollup-plugin-keep-import' - default (type)
import type keepImport from 'rollup-plugin-keep-import' - rollup.config wrong
const { keepImport } = require('rollup-plugin-keep-import')correctimport keepImport from 'rollup-plugin-keep-import'; export default { plugins: [keepImport()] }
Quickstart
// rollup.config.js
import keepImport from 'rollup-plugin-keep-import';
export default {
input: 'src/index.js',
output: {
dir: 'dist',
format: 'es',
},
plugins: [
keepImport({
// By default, all imports are kept. Use 'include' or 'exclude' to filter.
include: ['**/*.js'],
exclude: ['node_modules/**'],
}),
],
};