{"id":22190,"library":"rollup-plugin-purs","title":"rollup-plugin-purs","description":"Rollup plugin to bundle PureScript modules into optimized JavaScript bundles. Current stable version is 1.0.38. It integrates PureScript compilation output with Rollup, offering tree shaking and advanced optimizations like uncurrying, inlining, dead code elimination, and constant propagation. Compared to purs bundle or webpack, it produces smaller file sizes (e.g., 35.7 kB vs 65.2 kB for a sample app). Requires manual PureScript compilation beforehand (e.g., with pulp build). Releases are infrequent; last update was in 2017. Not actively maintained, but functional for existing projects.","status":"maintenance","version":"1.0.38","language":"javascript","source_language":"en","source_url":"https://github.com/pauan/rollup-plugin-purs","tags":["javascript"],"install":[{"cmd":"npm install rollup-plugin-purs","lang":"bash","label":"npm"},{"cmd":"yarn add rollup-plugin-purs","lang":"bash","label":"yarn"},{"cmd":"pnpm add rollup-plugin-purs","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; requires rollup ^0.41.6 to work as a plugin.","package":"rollup","optional":false}],"imports":[{"note":"The package is ESM-only; CommonJS require will fail. Use import syntax.","wrong":"const purs = require('rollup-plugin-purs')","symbol":"default","correct":"import purs from 'rollup-plugin-purs'"},{"note":"The plugin is exported as default, not named. Named import { purs } is incorrect.","wrong":"import { purs } from 'rollup-plugin-purs'","symbol":"purs","correct":"import purs from 'rollup-plugin-purs'"},{"note":"TypeScript type for the plugin configuration is not exported by this package; use rollup's Plugin type.","wrong":"import { Plugin } from 'rollup-plugin-purs'","symbol":"Plugin","correct":"import type { Plugin } from 'rollup'"}],"quickstart":{"code":"// rollup.config.js\nimport purs from 'rollup-plugin-purs';\n\nexport default {\n  input: 'src/Main.purs',\n  output: {\n    file: 'bundle.js',\n    format: 'iife',\n    sourcemap: true\n  },\n  plugins: [purs()]\n};\n\n// Build: run 'pulp build -- --source-maps' first, then 'rollup -c'","lang":"javascript","description":"Basic Rollup config to bundle PureScript output. Requires prior PureScript compilation with pulp build."},"warnings":[{"fix":"Run 'pulp build -- --source-maps' or equivalent before running rollup.","message":"Plugin does not compile PureScript; you must run pulp build or purs compile first.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use an older Rollup version (e.g., 0.41.6) or consider alternatives.","message":"Requires Rollup version ^0.41.6; incompatible with newer Rollup versions (>=1.0.0).","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Set assumePureVars: false in options if using impure FFI.","message":"assumePureVars optimization can break programs with impure FFI or unsafe functions.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Add // rollup-plugin-purs ignore dynamic exports comments in source files.","message":"debug: true may display warnings about dynamic exports, require, or module; can be suppressed with comment pragmas.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Run 'npm install rollup-plugin-purs --save-dev'.","cause":"The package is not installed or npm install failed.","error":"Error: Cannot find module 'rollup-plugin-purs'"},{"fix":"Use 'import purs from \"rollup-plugin-purs\"' in an ES module context or set type:\"module\" in package.json.","cause":"Using require() instead of import on an ESM-only package.","error":"SyntaxError: Unexpected token 'export' — maybe you need to use CommonJS require?"},{"fix":"Use output.file instead of dest, or use Rollup ^0.41.6 which supports dest.","cause":"Rollup version mismatch: dest was used in older Rollup config.","error":"Error: The 'dest' option is deprecated. Use 'output.file' instead."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}