{"id":20558,"library":"snack-babel-standalone","title":"snack-babel-standalone","description":"Standalone version of Babel bundled with presets and plugins for React Native, used in Expo Snack Runtime and Website. Version 5.0.0, released as part of the Snack monorepo. Optimized for runtime code parsing/transformation in browser environments, with two separate entrypoints (default for runtime, eslint for @babel/core replacement). Includes metro-react-native-babel-preset and @babel/preset-typescript. Unlike @babel/standalone, this is specifically tailored for React Native/Expo tooling and bundles only necessary dependencies to minimize bundle size.","status":"active","version":"5.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/expo/snack","tags":["javascript","typescript"],"install":[{"cmd":"npm install snack-babel-standalone","lang":"bash","label":"npm"},{"cmd":"yarn add snack-babel-standalone","lang":"bash","label":"yarn"},{"cmd":"pnpm add snack-babel-standalone","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Babel core is bundled internally, not a peer dependency","package":"@babel/core","optional":false}],"imports":[{"note":"Package exports a namespace object, not a default export.","wrong":"import babel from 'snack-babel-standalone'","symbol":"babel","correct":"import * as babel from 'snack-babel-standalone'"},{"note":"ESM-only package, CommonJS require will not work.","wrong":"const { transform } = require('snack-babel-standalone')","symbol":"transform","correct":"import { transform } from 'snack-babel-standalone'"},{"note":"TypeScript type available for transform result.","wrong":"","symbol":"BabelFileResult","correct":"import type { BabelFileResult } from 'snack-babel-standalone'"}],"quickstart":{"code":"import * as babel from 'snack-babel-standalone';\n\nconst code = `const x: number = 1;`;\nconst result = babel.transform(code, {\n  presets: ['module:metro-react-native-babel-preset'],\n  plugins: [\n    ['@babel/plugin-proposal-decorators', { legacy: true }],\n  ],\n  filename: 'test.js',\n  sourceMaps: true,\n  compact: false,\n});\nconsole.log(result.code);","lang":"typescript","description":"Demonstrates importing the namespace and transforming TypeScript code with preset and plugin options."},"warnings":[{"fix":"Use ES module import syntax, e.g., import * as babel from 'snack-babel-standalone'.","message":"Using CommonJS require() will fail because package is ESM-only.","severity":"gotcha","affected_versions":">=5.0.0"},{"fix":"Use namespace import: import * as babel from 'snack-babel-standalone'.","message":"Default import does not exist; importing babel as default will yield undefined.","severity":"gotcha","affected_versions":">=5.0.0"},{"fix":"Use snack-babel-standalone/eslint for ESLint parser replacement.","message":"The eslint entrypoint moved from snack-babel-standalone/eslint to snack-babel-standalone/eslint in v5.0.0.","severity":"breaking","affected_versions":"<5.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use import * as babel from 'snack-babel-standalone' instead.","cause":"Attempting to import default export, which does not exist.","error":"Module '\"snack-babel-standalone\"' has no default export."},{"fix":"Run 'yarn add snack-babel-standalone' or 'npm install snack-babel-standalone'.","cause":"Package not installed or not in node_modules.","error":"Error: Cannot find module 'snack-babel-standalone'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}