Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rollup/rollup-plugin-replace

This module has moved and is now available at @rollup/plugin-replace / https://github.com/rollup/plugins/blob/master/packages/replace
https://github.com/rollup/rollup-plugin-replace

Last synced: 15 days ago
JSON representation

This module has moved and is now available at @rollup/plugin-replace / https://github.com/rollup/plugins/blob/master/packages/replace

Awesome Lists containing this project

README

        

# Moved

This module has moved and is now available at [@rollup/plugin-replace](https://github.com/rollup/plugins). Please update your dependencies. This repository is no longer maintained.

# rollup-plugin-replace

[![](https://img.shields.io/npm/v/rollup-plugin-replace.svg?style=flat)](https://www.npmjs.com/package/rollup-plugin-replace)

Replace strings in files while bundling them.

## Installation

```bash
npm install --save-dev rollup-plugin-replace
```

## Usage

Generally, you need to ensure that rollup-plugin-replace goes _before_ other things (like rollup-plugin-commonjs) in your `plugins` array, so that those plugins can apply any optimisations such as dead code removal.

```js
// rollup.config.js
import replace from 'rollup-plugin-replace';

export default {
// ...
plugins: [
replace({
ENVIRONMENT: JSON.stringify('production')
})
]
};
```

## Options

```js
{
// a minimatch pattern, or array of patterns, of files that
// should be processed by this plugin (if omitted, all files
// are included by default)...
include: 'config.js',

// ...and those that shouldn't, if `include` is otherwise
// too permissive
exclude: 'node_modules/**',

// To replace every occurrence of `<@foo@>` instead of every
// occurrence of `foo`, supply delimiters
delimiters: ['<@', '@>'],

// All other options are treated as `string: replacement`
// replacers...
VERSION: '1.0.0',
ENVIRONMENT: JSON.stringify('development'),

// or `string: (id) => replacement` functions...
__dirname: (id) => `'${path.dirname(id)}'`,

// ...unless you want to be careful about separating
// values from other options, in which case you can:
values: {
VERSION: '1.0.0',
ENVIRONMENT: JSON.stringify('development')
}
}
```

## Word boundaries

By default, values will only match if they are surrounded by _word boundaries_ — i.e. with options like this...

```js
{
changed: 'replaced';
}
```

...and code like this...

```js
console.log('changed');
console.log('unchanged');
```

...the result will be this:

```js
console.log('replaced');
console.log('unchanged');
```

If that's not what you want, specify empty strings as delimiters:

```js
{
changed: 'replaced',
delimiters: ['', '']
}
```

## License

MIT