Détail du package

unplugin-replace

unplugin15.4kMIT0.6.1

A universal bundler plugin which replaces targeted strings in files.

unplugin, rollup, vite, esbuild

readme

unplugin-replace

npm version npm downloads JSR Unit Test

🍣 A universal bundler plugin which replaces targeted strings in files, based on @rollup/plugin-replace.

Installation

# npm
npm i -D unplugin-replace

# jsr
npx jsr add -D @unplugin/replace
<summary>Vite</summary>
ts // vite.config.ts import Replace from 'unplugin-replace/vite' export default defineConfig({ plugins: [Replace()], })
<summary>Rollup</summary>
ts // rollup.config.js import Replace from 'unplugin-replace/rollup' export default { plugins: [Replace()], }
<summary>esbuild</summary>
ts // esbuild.config.js import { build } from 'esbuild' build({ plugins: [require('unplugin-replace/esbuild')()], })
<summary>Webpack</summary>
ts // webpack.config.js module.exports = { /* ... */ plugins: [require('unplugin-replace/webpack')()], }

Usage

Options

For all options please refer to docs.

This plugin accepts all @rollup/plugin-replace options, and some extra options that are specific to this plugin.

options.values

  • Type: { [find: string]: Replacement } | ReplaceItem[]
  • Default: []
type ReplaceItem = {
  /** Supply a string or RegExp to find what you are looking for. */
  find: string | RegExp

  /**
   * Can be a string or a function.
   * - If it's a string, it will replace the substring matched by pattern. A number of special replacement patterns are supported
   * - If it's a function, it will be invoked for every match and its return value is used as the replacement text.
   */
  replacement: Replacement
}
type Replacement = string | ((id: string, match: RegExpExecArray) => string)

Comparing with @rollup/plugin-replace, find option supports regex pattern.

Example:

Replace({
  values: [
    {
      find: /apples/gi,
      replacement: 'oranges',
    },
    {
      find: 'process.env.NODE_ENV',
      replacement: '"production"',
    },
  ],
})

Sponsors

License

MIT License © 2024-PRESENT Kevin Deng