{"id":26326,"library":"rollup-plugin-critical","title":"rollup-plugin-critical","description":"Rollup plugin for generating critical CSS using the critical package. Version 1.0.15 is current. It integrates with Rollup build process to extract and inline critical CSS for pages defined by URLs or filesystem paths. Key differentiators: supports multiple pages, custom critical configuration, and optional inlining. Ships TypeScript types. Release cadence: occasional updates. Compared to alternatives like critters, this plugin is specifically designed for Rollup/Vite and offers more configuration flexibility.","status":"active","version":"1.0.15","language":"javascript","source_language":"en","source_url":"ssh://git@github.com/nystudio107/rollup-plugin-critical","tags":["javascript","rollup","plugin","critical","css","typescript"],"install":[{"cmd":"npm install rollup-plugin-critical","lang":"bash","label":"npm"},{"cmd":"yarn add rollup-plugin-critical","lang":"bash","label":"yarn"},{"cmd":"pnpm add rollup-plugin-critical","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core dependency for generating critical CSS","package":"critical","optional":false}],"imports":[{"note":"Default export; named export also available as rollupPluginCritical. Since v1.0.13, provides conditional exports for ESM and CJS.","wrong":"const PluginCritical = require('rollup-plugin-critical')","symbol":"PluginCritical","correct":"import PluginCritical from 'rollup-plugin-critical'"},{"note":"Named export, same function as default. Use if you prefer named imports.","wrong":null,"symbol":"rollupPluginCritical","correct":"import { rollupPluginCritical } from 'rollup-plugin-critical'"},{"note":"TypeScript type for options object. Available in v1.0.6+.","wrong":null,"symbol":"PluginCriticalOptions","correct":"import type { PluginCriticalOptions } from 'rollup-plugin-critical'"}],"quickstart":{"code":"// rollup.config.js\nimport PluginCritical from 'rollup-plugin-critical';\n\nexport default {\n  input: 'src/index.js',\n  output: {\n    dir: 'dist',\n    format: 'es',\n  },\n  plugins: [\n    PluginCritical({\n      criticalUrl: 'https://example.com',\n      criticalBase: './dist',\n      criticalPages: [\n        { uri: '', template: 'index' },\n        { uri: 'about', template: 'about/index' },\n      ],\n      criticalConfig: {\n        inline: false,\n        width: 1200,\n        height: 1200,\n      },\n    }),\n  ],\n};","lang":"typescript","description":"Basic setup for rollup-plugin-critical to generate critical CSS for multiple pages."},"warnings":[{"fix":"Remove `minify` from criticalConfig; use an external minifier if needed.","message":"The `minify` option was removed in v1.0.8 due to its removal from critical v4.","severity":"breaking","affected_versions":">=1.0.8"},{"fix":"Upgrade to v1.0.13 or later.","message":"CJS/ESM import may fail for projects with `type: module` before v1.0.13 due to missing conditional exports.","severity":"breaking","affected_versions":"<1.0.13"},{"fix":"Use v1.0.13 or later for both ESM and CJS support.","message":"In v1.0.11 the plugin was bundled as CJS, causing issues in ESM projects. v1.0.12 reverted to CJS default, v1.0.13 added proper conditional exports.","severity":"breaking","affected_versions":"1.0.11"},{"fix":"Ensure your project can handle ESM. Use Node 14+ and set `type: module` in package.json if needed.","message":"The `critical` package is ESM-only since v5; rollup-plugin-critical v1.0.12+ requires Node 14+ and ESM-compatible environment.","severity":"deprecated","affected_versions":">=1.0.12"},{"fix":"Do not provide `css` in criticalConfig; the plugin handles it.","message":"The `css` option in criticalConfig cannot be set manually; it is overridden by the plugin to include the built CSS files.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Upgrade rollup-plugin-critical to v1.0.13+, or switch your project to ESM.","cause":"The `critical` package is ESM-only, but older versions of rollup-plugin-critical try to require it in CJS.","error":"ERR_REQUIRE_ESM: require() of ES Module /path/to/node_modules/critical/... from /path/to/rollup-plugin-critical/... not supported."},{"fix":"Update to v1.0.13+ or adjust your import path (e.g., require('rollup-plugin-critical/dist/index.js')).","cause":"Missing or outdated package.json exports field; older versions did not have conditional exports.","error":"Module not found: Can't resolve 'rollup-plugin-critical'"},{"fix":"Use default import: `import PluginCritical from 'rollup-plugin-critical'`.","cause":"Using named import instead of default, or importing from wrong path.","error":"TypeError: PluginCritical is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}