jstransformer-babel

raw JSON →
2.1.0 verified Sat Apr 25 auth: no javascript maintenance

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.

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.
cause Incompatible Babel version or multiple Babel installations.
fix
Install compatible Babel version: npm install @babel/core@^7.0.0 (if jstransformer-babel supports Babel 7) or stick to Babel 6.
error Error: Couldn't find preset "env" relative to directory
cause Preset 'env' is not installed.
fix
npm install @babel/preset-env --save-dev
error TypeError: babel.render is not a function
cause Directly requiring jstransformer-babel without wrapping with jstransformer.
fix
Use: const jstransformer = require('jstransformer'); const babel = jstransformer(require('jstransformer-babel'));
breaking jstransformer-babel v2 requires explicit presets; no longer defaults to ES2015.
fix Pass an array of presets (e.g., ['env']) or configure .babelrc.
deprecated jstransformer v1 is being replaced by jstransformer v2 which uses a different API.
fix Migrate to jstransformer v2 with updated interface.
gotcha The package only implements 'render'; other methods (renderString, renderFile) are derived but may have edge cases.
fix Test derived methods thoroughly with your Babel options.
gotcha Babel configuration files (.babelrc) only apply when filename is passed to renderFile or renderFileAsync.
fix Use renderFile* or pass { filename: 'example.js' } to render.
npm install jstransformer-babel
yarn add jstransformer-babel
pnpm add jstransformer-babel

Transpile modern JS to compatible code using Babel 6 via jstransformer-babel with preset-env.

const jstransformer = require('jstransformer');
const babel = jstransformer(require('jstransformer-babel'));
const src = `const x = () => 1`;
const result = babel.render(src, {
  presets: [['@babel/preset-env', { targets: { node: 'current' } }]]
});
console.log(result.body);