You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.0 KiB

4 years ago
# 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