Power rollup content transform plugin.
npm install --save-dev rollup-plugin-re
import { rollup } from 'rollup'
import replace from 'rollup-plugin-re'
import commonjs from 'rollup-plugin-commonjs'
rollup({
entry: 'main.js',
plugins: [
replace({
// ... do replace before commonjs
patterns: [
{
// regexp match with resolved path
match: /formidable(\/|\\)lib/,
// string or regexp
test: 'if (global.GENTLY) require = GENTLY.hijack(require);',
// string or function to replaced with
replace: '',
}
]
}),
commonjs(),
replace({
// ... do replace after commonjs
})
]
}).then(...)
use defines
options to remove macro blocks
{
defines: {
IS_SKIP: false,
IS_REMOVE: true,
}
}
// #if IS_SKIP
console.log('!Skip!')
// #endif
// #if IS_REMOVE
console.log('!Remove!')
// #endif
// #if IS_SKIP
console.log('!Skip!')
// #endif
use replaces
options to quick replace text
{
replaces: {
$version: "1.0.1"
}
}
console.log('$version')
console.log('1.0.1')
{
// 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/**',
defines: {
IS_SKIP: false,
IS_REMOVE: true,
},
replaces: {
$version: "1.0.1"
},
patterns: [
{
include: [], // same as above
exclude: [], // same as above
// regexp match with resolved path
match: /formidable(\/|\\)lib/,
// string or regexp
test: 'if (global.GENTLY) require = GENTLY.hijack(require);',
// string or function
replace: '',
},
// replace whole file content
{
text: 'exports = "content"', // replace content with given text
},
{
file: './replace.js', // replace with given relative file
},
{
transform (code, id) { // replace by function
return `'use strict';\n${code}`
}
}
]
}