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
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
|