Registry / devops / esbuild-plugin-preserve-directives

esbuild-plugin-preserve-directives

JSON →
library0.0.11jsnpmunverified

An esbuild plugin that ensures directives like 'use client' and 'use strict' are preserved at the top of output files. Current stable version is 0.0.11. The plugin scans source files for specified directives before bundling and reinserts them into the corresponding output chunks. It supports regex-based include/exclude patterns and works with esbuild's metafile option for improved accuracy. Updated frequently with community contributions, it is primarily used with React Server Components and Node.js ESM/CJS builds. Key differentiator: it handles directives that esbuild would otherwise strip, with minimal overhead.

npm install esbuild-plugin-preserve-directives
INSTALL
IMPORT
SIG · ESBUILD-PLUGIN-PRE
E
esbuild-plugin-preserve-directives
devopsjavascriptv0.0.11
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

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

preserveDirectivesPlugin
import { preserveDirectivesPlugin } from 'esbuild-plugin-preserve-directives'
import preserveDirectivesPlugin from 'esbuild-plugin-preserve-directives'
This package only exports a named export, not a default export.
PreserveDirectivesPluginOptions
import type { PreserveDirectivesPluginOptions } from 'esbuild-plugin-preserve-directives'
import { PreserveDirectivesPluginOptions } from 'esbuild-plugin-preserve-directives'
Options type is exported as a type-only export; use 'import type' for type-checking.
plugin via require()
const { preserveDirectivesPlugin } = require('esbuild-plugin-preserve-directives')
const preserveDirectivesPlugin = require('esbuild-plugin-preserve-directives')
CommonJS require must destructure the named export.

Shows how to use the plugin with esbuild, including metafile option for accuracy.

import { build } from 'esbuild'; import { preserveDirectivesPlugin } from 'esbuild-plugin-preserve-directives'; await build({ entryPoints: ['src/index.js'], bundle: true, outdir: 'dist', metafile: true, plugins: [ preserveDirectivesPlugin({ directives: ['use client', 'use strict'], include: /\.(js|ts|jsx|tsx)$/, exclude: /node_modules/, }), ], });
Debug
Known issues
gotchametafile option is not required but strongly recommended for accuracy; without it, directive preservation may be incomplete.
fix
Add metafile: true to esbuild options.
affects: >=0.0.0
breakingPlugin requires esbuild ^0.21.0; older esbuild versions are incompatible.
fix
Upgrade esbuild to ^0.21.0 or later.
affects: <0.21.0
deprecatedNode.js <18.0.0 is not supported.
fix
Use Node.js >=18.0.0.
affects: <18.0.0
Errors
Common errors & fixes
Error: The plugin 'esbuild-plugin-preserve-directives' must be used with esbuild ^0.21.0
Peer dependency version mismatch
fix
Run 'npm install esbuild@^0.21.0' or update esbuild to compatible version.
Cannot find module 'esbuild-plugin-preserve-directives'
Package not installed
fix
Run 'npm install -D esbuild-plugin-preserve-directives'.
Uncaught TypeError: preserveDirectivesPlugin is not a function
Default import used instead of named import
fix
Use 'import { preserveDirectivesPlugin } from 'esbuild-plugin-preserve-directives''.
Upgrade
Version history
0.0.11latest on npm
Audit
Dependencies
esbuildrequiredPeer dependency: requires esbuild ^0.21.0 to function as a plugin
Agent activity
6 hits · last 30 days
node
6
Resources
esbuild-plugin-preserve-directives — npm install esbuild-plugin-preserve-directives · libregistry