This module has moved and is now available at @rollup/plugin-replace. Please update your dependencies. This repository is no longer maintained.
Replace strings in files while bundling them.
npm install --save-dev rollup-plugin-replaceGenerally, 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.
// rollup.config.jsimportreplacefrom'rollup-plugin-replace';exportdefault{// ...plugins: [replace({ENVIRONMENT: JSON.stringify('production')})]};{// 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 permissiveexclude: 'node_modules/**',// To replace every occurrence of `<@foo@>` instead of every// occurrence of `foo`, supply delimitersdelimiters: ['<@','@>'],// 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')}}By default, values will only match if they are surrounded by word boundaries — i.e. with options like this...
{
changed: 'replaced';}...and code like this...
console.log('changed');console.log('unchanged');...the result will be this:
console.log('replaced');console.log('unchanged');If that's not what you want, specify empty strings as delimiters:
{changed: 'replaced',delimiters: ['','']}MIT