Registry / devops / babel-preset-moon

babel-preset-moon

JSON →
library3.1.4jsnpmunverified

A modern Babel preset for tooling development from the moonrepo ecosystem. Current stable version is 3.1.4, updated regularly with Babel releases. It configures the env preset for the current Node.js version, enables TypeScript, native async/await, and supports React, Solid, and JSX runtimes. Converts __DEV__/__PROD__/__TEST__ to process.env checks and wraps invariant() in conditionals. Not intended for web apps or package building — use Packemon instead. Ships TypeScript types, requires Node >=18.12.0 and @babel/core >=7.0.0.

npm install babel-preset-moon
INSTALL
IMPORT
SIG · BABEL-PRESET-MOON
B
babel-preset-moon
devopsjavascriptv3.1.4
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default preset
module.exports = { presets: ['moon'] };
module.exports = { presets: [require('babel-preset-moon')] };
Use string reference in babel.config.js; requiring the module directly is unnecessary and may cause issues.
preset with options
module.exports = { presets: [['moon', { decorators: true }]] };
module.exports = { presets: ['moon', { decorators: true }] };
Options must be passed as a tuple: [presetName, options].
ESM import
export default { presets: ['moon'] };
import babelPresetMoon from 'babel-preset-moon'; export default { presets: [babelPresetMoon] };
Babel config files support ESM; use string reference for presets, not direct imports.

Shows how to install, configure babel-preset-moon with React automatic runtime, and an example usage comment.

// Install: yarn add --dev babel-preset-moon @babel/core // babel.config.js module.exports = { presets: [['moon', { react: 'automatic', decorators: false }]], }; // Example usage with Node.js ESM: // Run: node --experimental-vm-modules -e "import('./src/index.js')"
Debug
Known issues
gotchababel-preset-moon is intended for tooling development only, not for web apps or package building.
fix
Use Packemon (https://packemon.dev) for building packages or web applications.
affects: all
deprecatedThe 'modules' option defaults to false (auto), but setting it to true may break ESM output.
fix
Leave modules as false for ESM-friendly output; set to 'commonjs' if CJS required.
affects: >=3.0.0
gotchaEnabling decorators (decorators: true) forces Babel into loose mode, which may affect output compatibility.
fix
Be aware that loose mode changes semantics; test your code thoroughly.
affects: all
breakingRequires Node >=18.12.0; older Node versions will cause errors.
fix
Upgrade Node to >=18.12.0.
affects: >=3.0.0
Errors
Common errors & fixes
Error: Cannot find module '@babel/core'
@babel/core is a peer dependency not installed.
fix
yarn add --dev @babel/core
Error: [BABEL] unknown preset "moon"
babel-preset-moon is not installed or not in node_modules.
fix
yarn add --dev babel-preset-moon
Support for the experimental syntax 'decorators' isn't currently enabled
Decorators option not set but decorators used in code.
fix
Add { decorators: true } to preset options.
Upgrade
Version history
3.1.4latest on npm
Audit
Dependencies
@babel/corerequiredPeer dependency; the preset requires Babel core to function.
Agent activity
2 hits · last 30 days
node
2
Resources
babel-preset-moon — npm install babel-preset-moon · libregistry