developit/rollup-plugin-postprocess(新しいタブで開きます)
主要言語: JavaScript
🎞 Find & replace postprocessing for Rollup output
- star 数
- 18
- watcher 数
- 1
- fork 数
- 5
- issue 数
- 6
- 最終更新
- 2020/08/15
主要言語: JavaScript
🎞 Find & replace postprocessing for Rollup output
Apply regex find-and-replace postprocessing to your Rollup bundle.
npm i -D rollup-plugin-postprocess
Works just like a JavaScript String replace, including the funtion callback option.
postprocess() expects an Array of [(RexExp) find, (String|Function) replace] pairs. Alternatively, if a function is provided, it will be invoked for each bundle and can return said pairs.
import postprocess from 'rollup-plugin-postprocess'; export default { plugins: [ postprocess([ [/\b(module\.exports=|export default )([a-zA-Z])/, '$1$2'] ]) ] }
This example is more practical. Rollup places exports at the end of your bundle, which can often create single-use variables that Uglify does not collapse. Let's implement a find & replace that "moves" the export inline to save some bytes.
In this example, we'll make use of the fact that find/replacement pairs are executed in sequence. The first pair is used both to remove the existing export statement and to find the export type & identifier. By the time the second find/replace pair is processed, it can make use of the values found in the first pass.
import postprocess from 'rollup-plugin-postprocess'; let name, exportPrefix; export default { plugins: [ postprocess([ [ /(module\.exports\s*=\s*|export\s*default\s*)([a-zA-Z$_][a-zA-Z0-9$_]*)[;,]?/, (str, prefix, id) => { name = id; exportPrefix = prefix; // returning nothing is the same as an empty string } ], [ /^function\s([a-zA-Z$_][a-zA-Z0-9$_]*)/, (str, id) => id==name ? `${exportPrefix} function` : str ] ]) ] };