danielroe/rollup-plugin-pure(opens in a new tab)
Language: TypeScript
Annotate functions as pure for Rollup
- stars
- 87
- watchers
- 1
- forks
- 6
- open issues
- 10
- Last updated
- 10/31/2026
Language: TypeScript
Annotate functions as pure for Rollup
Automatically add
/* #__PURE__ */annotations before definition functions
Definition functions (for example, in Vue with defineComponent) are increasingly common but do not play nice with tree-shaking. It's not possible to tell whether or not a function call which receives an object can be tree-shaken from a build, as it's possible there might be side effects.
Rollup supports /* @__PURE__ */ annotations to declare this from a library author's point of view, but it can be tricky when we know that every occurrence of a function call is pure.
This plugin will automatically inject the annotation before any occurrence of the function call, as well as injecting /* @__NO_SIDE_EFFECTS__ */ annotations in front of function declarations.
Install and add rollup-plugin-pure to your Vite or Rollup config.
pnpm add -D rollup-plugin-pure
import { PluginPure } from 'rollup-plugin-pure' import { defineConfig } from 'vite' export default defineConfig({ plugins: [ PluginPure({ functions: ['defineComponent', /^define(Page|Meta)$/], include: [/(?<!im)pure\.js$/], // exclude: [], // sourcemap: true, }), ], })
corepack enablepnpm installpnpm dev:preparepnpm dev to start playground in development modeMade with ❤️
Published under the MIT License.