{"id":25060,"library":"catullus","title":"Catullus","description":"Catullus is a transpiler that compiles modern JavaScript syntax to compatible versions for older environments. It acts as a wrapper around Babel and presets to simplify build configuration. The current stable version is 2.0.0, with no active release cadence apparent from the metadata. Key differentiators: it provides a CLI command (catullus babel) and integrates with .babelrc. Compared to plain Babel, Catullus aims to reduce boilerplate but enters a space already well-covered by higher-level tools like Parcel or Webpack. The project appears unmaintained with sparse documentation and limited community adoption.","status":"maintenance","version":"2.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/Yann-Wang/catullus","tags":["javascript","babel tool","catullus"],"install":[{"cmd":"npm install catullus","lang":"bash","label":"npm"},{"cmd":"yarn add catullus","lang":"bash","label":"yarn"},{"cmd":"pnpm add catullus","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core compilation engine","package":"@babel/core","optional":false},{"reason":"Command-line interface for transpilation","package":"@babel/cli","optional":false},{"reason":"Preset for environment targeting","package":"babel-preset-env","optional":true},{"reason":"Preset for React JSX","package":"babel-preset-react","optional":true},{"reason":"Preset for stage-2 proposals","package":"babel-preset-stage-2","optional":true},{"reason":"Plugin for object rest/spread","package":"babel-plugin-transform-object-rest-spread","optional":true},{"reason":"Plugin for decorators","package":"babel-plugin-transform-decorators-legacy","optional":true},{"reason":"Plugin for CommonJS exports","package":"babel-plugin-add-module-exports","optional":true}],"imports":[{"note":"CLI usage: catullus is invoked directly as a command, not imported.","wrong":"npx catullus","symbol":"default (command line)","correct":"catullus babel src --out-dir lib/"},{"note":"Catullus expects .babelrc; other formats may not work.","wrong":"Using a different configuration file like babel.config.js","symbol":".babelrc","correct":"Create a .babelrc file with presets and plugins."},{"note":"The 'babel' subcommand is required; omitting it will fail.","wrong":"\"build\": \"catullus src --out-dir lib/\"","symbol":"script in package.json","correct":"\"build\": \"catullus babel src --out-dir lib/\""}],"quickstart":{"code":"npm install --save-dev catullus\n# Create .babelrc:\necho '{\"presets\":[[\"env\",{\"targets\":{\"node\":\"6.9\"}}]],\"plugins\":[\"transform-object-rest-spread\"]}' > .babelrc\n# Add build script to package.json:\n# \"build\": \"catullus babel src --out-dir lib/\"\n# Then run:\nnpm run build","lang":"javascript","description":"Quickstart showing installation, .babelrc setup, and CLI usage for transpiling a Node project."},"warnings":[{"fix":"Use Babel 7+ directly: replace with @babel/preset-env and update plugins.","message":"Catullus relies on deprecated Babel 6 packages (e.g., babel-preset-env, babel-plugin-add-module-exports).","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"For non-JS files (e.g., .jsx, .ts), use Webpack or another bundler.","message":"Catullus only processes .js files; other extensions are ignored.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Use `catullus babel` instead of just `catullus`.","message":"The command must include 'babel' subcommand (e.g., `catullus babel src`).","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Migrate to @babel/preset-env (Babel 7) directly; Catullus may not support it.","message":"Potential breaking change if moving from Babel 6 to Babel 7; Catullus is locked to Babel 6 presets.","severity":"breaking","affected_versions":">=2.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install old Babel presets: npm install babel-preset-env babel-preset-react babel-preset-stage-2","cause":"Missing required Babel 6 dependency; Catullus expects these old packages.","error":"Error: Cannot find module 'babel-preset-env'"},{"fix":"Create a valid .babelrc file in the project root.","cause":"Missing .babelrc or invalid syntax in the configuration file.","error":"Error: Command failed: catullus babel src --out-dir lib/"},{"fix":"Use 'catullus babel src' instead.","cause":"Catullus requires 'babel' as a subcommand; calling 'catullus src' fails.","error":"Error: The 'babel' subcommand was not recognized."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}