You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
//some imports ...importincrementalfrom'@mprt/rollup-plugin-incremental'exportdefault{input: 'src/index.js',//ATTENTION: treeshaking must be disabled!treeshake: false,//ATTENTION: there is must be only one output! output: {dir: 'dist',format: 'esm',//ATTENTION: preserveModules must be enabled!preserveModules: true,preserveModulesRoot: 'src',//ATTENTION: minifyInternalExports must be disabled!minifyInternalExports: false,},plugins: [//ATTENTION: plugin very likely should be first!//BTW, this plugin is noop without watch mode incremental(),//another plugins...//ATTENTION: this fixes issues with syntheticNamedExports in commonjs modules//it should be last incremental.fixSNE(),],}
And then...
rollup -cw
NOTE: You MUST use watch mode with this plugin.
There is simple typical ts, react and mobx web app in example folder.
First build will take same time as usual, but second and next builds should be really fast - below a second.
Gotchas
If changed file is not directly transpiles to module (ie: some babel config), then full rebuild triggered.
If error occurs during incremental build, all changed modules will be rebuild again on next build
Currently it works by replacing input option on incremental builds, so it cannot work with another plugins which
works with input, i.e. multi-entry plugin
interfaceIncrementalAPI{/** Is current (or last, if there is no current) build is incremental? */readonlyincrementalBuild: boolean/** Ids of changed modules, which triggers incremental build. Null if build is not incremental */readonlychangedModules: null|Set<string>}
About
A Rollup plugin which makes your (development) builds much faster, by recompiling only changed modules.