{"id":20166,"library":"jstransformer-babel","title":"jstransformer-babel","description":"A JSTransformer plugin that wraps Babel for transpiling JavaScript. Current version 2.1.0 supports Babel 6 and is in maintenance mode. The package provides a unified interface through the JSTransformer architecture, enabling render, renderFile, and renderString APIs. Unlike direct Babel usage, it filters unsupported options and supports .babelrc configuration when a filename is provided. Key differentiator: it integrates with the JSTransformer ecosystem (used by Pug, etc.) but does not include presets by default, requiring explicit presets like 'es2015' in Babel 6.","status":"maintenance","version":"2.1.0","language":"javascript","source_language":"en","source_url":"https://github.com/jstransformers/jstransformer-babel","tags":["javascript","jstransformer","babel"],"install":[{"cmd":"npm install jstransformer-babel","lang":"bash","label":"npm"},{"cmd":"yarn add jstransformer-babel","lang":"bash","label":"yarn"},{"cmd":"pnpm add jstransformer-babel","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency for JSTransformer interface","package":"jstransformer","optional":false}],"imports":[{"note":"Must wrap with jstransformer to access render* methods.","wrong":"const babel = require('jstransformer-babel')","symbol":"jstransformer-babel","correct":"const babel = require('jstransformer')(require('jstransformer-babel'))"},{"note":"From v2, presets are not default; 'es2015' is outdated; use '@babel/preset-env'.","wrong":"babel.render(src, { presets: ['es2015'] })","symbol":"render","correct":"babel.render(src, { presets: ['env'] })"},{"note":"renderFile accepts options as second argument and callback as third.","wrong":"babel.renderFile('input.js', {}, function(err, result) {})","symbol":"renderFile","correct":"babel.renderFile('input.js', function(err, result) {})"}],"quickstart":{"code":"const jstransformer = require('jstransformer');\nconst babel = jstransformer(require('jstransformer-babel'));\nconst src = `const x = () => 1`;\nconst result = babel.render(src, {\n  presets: [['@babel/preset-env', { targets: { node: 'current' } }]]\n});\nconsole.log(result.body);","lang":"javascript","description":"Transpile modern JS to compatible code using Babel 6 via jstransformer-babel with preset-env."},"warnings":[{"fix":"Pass an array of presets (e.g., ['env']) or configure .babelrc.","message":"jstransformer-babel v2 requires explicit presets; no longer defaults to ES2015.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Migrate to jstransformer v2 with updated interface.","message":"jstransformer v1 is being replaced by jstransformer v2 which uses a different API.","severity":"deprecated","affected_versions":">=1.0.0 <2.0.0"},{"fix":"Test derived methods thoroughly with your Babel options.","message":"The package only implements 'render'; other methods (renderString, renderFile) are derived but may have edge cases.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use renderFile* or pass { filename: 'example.js' } to render.","message":"Babel configuration files (.babelrc) only apply when filename is passed to renderFile or renderFileAsync.","severity":"gotcha","affected_versions":">=2.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Install compatible Babel version: npm install @babel/core@^7.0.0 (if jstransformer-babel supports Babel 7) or stick to Babel 6.","cause":"Incompatible Babel version or multiple Babel installations.","error":"Error: Requires Babel \"$BABEL_VERSION\", but is loaded with \"6.26.3\". If you are sure you have a compatible version of Babel, it is likely that you are pulling in different versions of Babel. Try uninstalling all Babel packages and reinstalling them."},{"fix":"npm install @babel/preset-env --save-dev","cause":"Preset 'env' is not installed.","error":"Error: Couldn't find preset \"env\" relative to directory"},{"fix":"Use: const jstransformer = require('jstransformer'); const babel = jstransformer(require('jstransformer-babel'));","cause":"Directly requiring jstransformer-babel without wrapping with jstransformer.","error":"TypeError: babel.render is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}