{"id":26338,"library":"roole-compiler","title":"roole-compiler","description":"Roole compiler converts Roole CSS AST (from roole-parser) into CSS string. Version 0.6.0 is the latest and only stable release, with no updates since 2016. It is a standalone component of the Roole preprocessor ecosystem. Differentiator: direct AST-to-CSS compilation with configurable indentation and numeric precision. Limited adoption and no active maintenance.","status":"abandoned","version":"0.6.0","language":"javascript","source_language":"en","source_url":"git://github.com/curvedmark/roole-compiler","tags":["javascript","roole","compiler"],"install":[{"cmd":"npm install roole-compiler","lang":"bash","label":"npm"},{"cmd":"yarn add roole-compiler","lang":"bash","label":"yarn"},{"cmd":"pnpm add roole-compiler","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"The compiler expects an AST from roole-parser, making it a required peer for compilation.","package":"roole-parser","optional":false}],"imports":[{"note":"CommonJS only; no ES module or TypeScript bindings.","wrong":"import { compile } from 'roole-compiler'; // ESM not supported","symbol":"compile","correct":"var compiler = require('roole-compiler'); compiler.compile(ast);"},{"note":"Default export is the entire module, not a named compile function directly.","wrong":"// None; only CommonJS pattern exists","symbol":"compiler","correct":"var compiler = require('roole-compiler');"},{"note":"Options object is optional; defaults: indent='\\t', precision=3.","wrong":"require('roole-compiler').compile(ast); // requires .compile explicitly","symbol":"compile","correct":"const compiler = require('roole-compiler'); const str = compiler.compile(ast, { indent: '  ', precision: 2 });"}],"quickstart":{"code":"var parser = require('roole-parser');\nvar compiler = require('roole-compiler');\n\nvar ast = parser.parse('body { margin: 0 }');\nvar str = compiler.compile(ast);\nconsole.log(str);\n// Output:\n// body {\n// \tmargin: 0;\n// }","lang":"javascript","description":"Parses a simple Roole rule and compiles the AST to a CSS string."},"warnings":[{"fix":"Always pair roole-compiler with roole-parser.","message":"Compiler expects AST from roole-parser exactly; incompatible with other parsers.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Consider migrating to a modern CSS preprocessor like PostCSS or Sass.","message":"Project is unmaintained since 2016; no updates or security patches.","severity":"deprecated","affected_versions":"0.6.0"},{"fix":"Validate AST with roole-parser before compiling.","message":"No error handling for malformed AST; compile may throw unhelpful errors.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'npm install roole-compiler'.","cause":"Package is not installed or not found in node_modules.","error":"Cannot find module 'roole-compiler'"},{"fix":"Use require('roole-compiler') instead of import.","cause":"Using ES6 import style on a CommonJS module.","error":"compiler.compile is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}