{"id":3709,"url":"https://github.com/babel/awesome-babel","name":"awesome-babel","description":"😎A list of awesome Babel plugins, presets, etc.","projects_count":74,"last_synced_at":"2026-08-06T10:00:31.508Z","repository":{"id":38206747,"uuid":"56436652","full_name":"babel/awesome-babel","owner":"babel","description":"😎A list of awesome Babel plugins, presets, etc.","archived":false,"fork":false,"pushed_at":"2024-08-19T18:01:35.000Z","size":85,"stargazers_count":878,"open_issues_count":3,"forks_count":46,"subscribers_count":29,"default_branch":"master","last_synced_at":"2026-07-18T04:05:42.171Z","etag":null,"topics":["awesome","awesome-list","babel","list"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/babel.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["babel"],"open_collective":"babel"}},"created_at":"2016-04-17T13:01:42.000Z","updated_at":"2026-06-07T21:54:05.000Z","dependencies_parsed_at":"2024-11-06T08:24:08.114Z","dependency_job_id":"2757d782-ea1d-4709-9140-2b6cdc7d1f88","html_url":"https://github.com/babel/awesome-babel","commit_stats":{"total_commits":46,"total_committers":37,"mean_commits":"1.2432432432432432","dds":0.9130434782608696,"last_synced_commit":"e9f70a5bd863d47a98834dd8ef19028979725ca5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/babel/awesome-babel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babel%2Fawesome-babel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babel%2Fawesome-babel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babel%2Fawesome-babel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babel%2Fawesome-babel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/babel","download_url":"https://codeload.github.com/babel/awesome-babel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babel%2Fawesome-babel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36334186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"ssl_error","status_checked_at":"2026-08-06T04:43:02.660Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-06T02:05:33.196Z","updated_at":"2026-08-06T10:00:31.508Z","primary_language":"JavaScript","list_of_lists":false,"displayable":true,"categories":["Presets","Plugins","Parsers","Tooling","License"],"sub_categories":["Alternative Programming Paradigms","General Plugins","React","Internationalization","Types","Module Resolution","Optimization","Testing","Syntax Sugar"],"readme":"# Awesome Babel [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)\n\n[\u003cimg src=\"https://babeljs.io/images/logo.svg\" width=\"160\" align=\"right\" alt=\"babel\"\u003e](http://babeljs.io)\n\n\u003e A list of awesome Babel plugins, presets, etc. Many of these are from the community, but some are lesser-known\n\u003e plugins in the Babel organization that may be useful to you.\n\n\u003e As always, use caution when trying out Babel plugins, especially those marked as 🔧 *experimental* or 🔧🚧 *under construction*.\n\nIf you want to contribute, please read the [contribution guidelines](contributing.md).\n\n## Parsers\n\n - [babel-eslint](https://github.com/babel/babel-eslint) - ESLint using Babel as the parser.\n   - Note: ESLint now lints most ES6+ syntax. This parser is only necessary if you are using Flow types or other experimental features.\n\n## Plugins\n\n### General Plugins\n\n - [external-helpers](https://www.npmjs.com/package/babel-plugin-external-helpers) - Moves helper functions to a single imported module.\n - [fast-async](https://github.com/MatAtBread/fast-async) - Uses nodent to compile async/await to fast Promise output.\n - [feature-flags](https://github.com/ember-cli/babel-plugin-feature-flags) - Helper for managing application feature flags.\n - [idx](https://github.com/facebookincubator/idx) - library + babel plugin for a existential function.\n - [transform-builtin-extend](https://github.com/loganfsmyth/babel-plugin-transform-builtin-extend) - Enable extending builtin types like `Error` and `Array`, which require special treatment and require static analysis to detect.\n - [console-source](https://github.com/peteringram0/babel-plugin-console-source) - Prepends the file name and line numbers for all console commands\n - [version](https://github.com/hustcc/babel-plugin-version) - Babel plugin replace defined identifier `__VERSION__` to pkg.version.\n - [babel-plugin-debug-tools](https://www.npmjs.com/package/babel-plugin-debug-tools) Babeljs Debug Tools helps you insert debug code and easely remove it when deploy to production\n\n### Module Resolution\n\n - [lodash](https://github.com/lodash/babel-plugin-lodash) - Cherry-picks Lodash modules so you don’t have to.\n - [ramda](https://github.com/megawac/babel-plugin-ramda) - Cherry-picks Ramda modules so you don’t have to.\n - [module-resolver](https://github.com/tleunen/babel-plugin-module-resolver) - Custom module resolver.\n - [root-import](https://github.com/entwicklerstube/babel-plugin-root-import) - Import modules from the root with `require('~/foo')` syntax.\n - [webpack-alias](https://github.com/trayio/babel-plugin-webpack-alias) - Allows you to use webpack aliases and most of webpack resolve features in Babel.\n - [hash-resolve](https://github.com/miketamis/babel-plugin-hash-resolve) - Allows you to use `require('#/path')` instead of `require('../../path')`, the number of `../` needed is worked out by the plugin\n - [rewrite-module-path](https://github.com/zheeeng/babel-plugin-rewrite-module-path) - Rewrite module resolving path.\n\n### React\n\n - [React Optimize](https://github.com/thejameskyle/babel-react-optimize) - A Babel preset and plugins for optimizing React code.\n - [React Transform](https://github.com/gaearon/babel-plugin-react-transform) - Instrument React components with custom transforms.\n - [react-docgen](https://github.com/kadirahq/babel-plugin-react-docgen) - Makes propTypes comments accessible at runtime for use with documentation generators.\n - [react-require](https://github.com/vslinko/babel-plugin-react-require) - Adds React import declaration if file contains JSX tags.\n - [transform-react-remove-prop-types](https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types) - Removes unnecessary React propTypes from the production build.\n - [transform-react-jsx-self](https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-jsx-self) - Adds a `__self` property to JSX tags for debugging. Don't use in production. [More info](https://github.com/babel/babel/pull/3540)\n - [transform-react-constant-elements](https://www.npmjs.com/package/babel-plugin-transform-react-constant-elements) - Hoist elements that can be marked as constant to the highest scope for reuse.\n - [transform-react-inline-elements](https://www.npmjs.com/package/babel-plugin-transform-react-inline-elements) - Replaces `React.createElement()` with a helper that is more optimized for production.\n - [react-hyperscript](https://github.com/roman01la/babel-plugin-react-hyperscript) - HyperScript syntax for React components without runtime overhead.\n - [react-import-extends](https://github.com/vijaysutrave/babel-plugin-react-import-extends) - Extends `Component` if a class renders a JSX element, also adds `import` statement if it detects a JSX component in the file.\n - [babel-plugin-transform-react-class-to-function](https://github.com/remcohaszing/babel-plugin-transform-react-class-to-function) - Transforms React class components into a function, if possible.\n - [babel-plugin-hoist-facc](https://github.com/strayiker/babel-plugin-hoist-facc) - Transforms function as child components to hoist the children function to highest scope.\n - [react-hiccup](https://github.com/callwait/babel-plugin-react-hiccup) - Hiccup syntax for React components.\n - [babel-plugin-framer-x](https://github.com/eschaefer/babel-plugin-framer-x) - Removes Framer X markup from your components. Lets you use Framer X components in a Storybook or real application.\n - [babel-plugin-react-directive](https://github.com/evolify/babel-plugin-react-directive) - Use directive in React, for example, you can use `r-if`、`r-for` in jsx just as `v-if`、`v-for` in Vue.\n - [zacs](https://github.com/nozbe/zacs) - \"styled components\"-ish syntax without performance overhead\n - [babel-plugin-typescript-to-proptypes](https://github.com/milesj/babel-plugin-typescript-to-proptypes) - Generate React PropTypes from TypeScript interfaces or type aliases.\n\n### Internationalization\n\n - [c-3po](https://c-3po.js.org) - Localization tool based on es6 template literals.\n - [react-intl](https://github.com/yahoo/react-intl) - Extracts string messages for translation from modules that use [React Intl](https://github.com/yahoo/react-intl).\n - [localize](https://github.com/amerani/babel-plugin-localize) - Modify static jsx text and string attributes with function call. 🔧\n\n### Types\n\n - [flow-runtime](https://github.com/codemix/flow-runtime/tree/master/packages/babel-plugin-flow-runtime) - Turns Flow annotations into runtime checks. Part of [Flow-Runtime](https://codemix.github.io/flow-runtime).\n - [tcomb](https://github.com/gcanti/babel-plugin-tcomb) - Turns Flow annotations into typechecks with [tcomb](https://github.com/gcanti/tcomb).\n - [jsdoc-to-assert](https://github.com/azu/babel-plugin-jsdoc-to-assert) - Turns JSDoc into runtime checks.\n - [runtyper](https://github.com/vitalets/babel-plugin-runtyper) - Detects type-mismatch operations in runtime without annotations.\n\n### Testing\n\n - [espower](https://github.com/power-assert-js/babel-plugin-espower) - Annotates call sites for descriptive messages when using [power-assert](https://github.com/power-assert-js/power-assert).\n - [istanbul](https://github.com/istanbuljs/babel-plugin-istanbul) - Instruments your code with Istanbul coverage.\n - [rewire](https://github.com/speedskater/babel-plugin-rewire) - Adds the ability to rewire module dependencies. This enables to mock modules for testing purposes.\n\n### Optimization\n\n - [groundskeeper-willie](https://github.com/betaorbust/babel-plugin-groundskeeper-willie) - Removes debugger and console calls.\n - [loop-optimizer](https://github.com/vihanb/babel-plugin-loop-optimizer) - Transforms `.forEach` and `.map` calls to for loops. 🔧\n - [closure-elimination](https://github.com/codemix/babel-plugin-closure-elimination) - Transforms closures into separate functions.\n - [preval](https://github.com/kentcdodds/babel-plugin-preval) - Pre-evaluate code at build-time.\n - [transform-named-imports](https://github.com/SectorLabs/babel-plugin-transform-named-imports) - Avoid including code that you don't need from modules you're importing.\n - [faster.js](https://github.com/vzhou842/faster.js) - Transforms native `Array` methods into faster equivalents. 🔧\n - [optimize-i18n](https://github.com/hustcc/babel-plugin-optimize-i18n) - Optimizing i18n bundle file by shorten the locale key.\n - [cloudinary](https://github.com/trivago/babel-plugin-cloudinary) - Compile cloudinary URLs at build time.\n - [object-to-json-parse](https://github.com/nd-02110114/babel-plugin-object-to-json-parse) - Converts from object literal to `JSON.parse`.\n\n### Syntax Sugar\n\n - [implicit-return](https://github.com/miraks/babel-plugin-implicit-return) - Transforms last statement in a function block to a return statement.\n - [transform-iota](https://github.com/passcod/babel-plugin-transform-iota) - Golang-style `iota()`. 🔧\n - [offside-js](https://github.com/shanewholloway/babel-plugin-offside-js) - Coffeescript-like indented block syntax hack. 🔧🚧\n - [trace](https://github.com/codemix/babel-plugin-trace) - Syntax shortcuts for console logging.\n - [meaningful-logs](https://github.com/furstenheim/babel-plugin-meaningful-logs) - Adds file name and line number of caller to `console.log()` calls.\n - [implicit-function](https://github.com/haskellcamargo/babel-plugin-implicit-function) - Implicit functions via `~` operator, transforming, for example, `~x` in `() =\u003e x`.\n - [function-composition](https://github.com/haskellcamargo/babel-plugin-function-composition) - Function piping and composition via `\u0026` operator, for example, `toUpper \u0026 console.log`.\n - [auto-await](https://github.com/ziolko/babel-plugin-auto-await) - Automatically `await` every `Promise` in `async` functions.\n\n### Alternative Programming Paradigms\n\n - [macros](https://github.com/codemix/babel-plugin-macros) - Hygienic, non-syntactic macros. 🔧\n - [contracts](https://github.com/codemix/babel-plugin-contracts) - Design by Contract; Includes preconditions, postconditions, and invariant conditions.\n - [transform-scala-lambda](https://github.com/xtuc/babel-plugin-transform-scala-lambda) - Enable Scala-style lambdas (using `_`). 🔧\n - [partial-application](https://github.com/citycide/babel-plugin-partial-application) - Scala/Kotlin-esque partial application syntax for JavaScript (using `_`). 🔧\n - [overload](https://github.com/foxbenjaminfox/babel-plugin-overload) - Allow overloading default operators like `+` or `===` for specific classes. 🔧🚧\n - [babel-macros](https://github.com/kentcdodds/babel-macros) - Enables zero-config, importable babel plugins.\n - [holes](https://github.com/rung-tools/babel-plugin-holes) - Holes (like Scala and Elixir) to help point-free programming, using operators as functions. 🔧\n\n## Presets\n\n - [env](https://github.com/babel/babel/tree/master/packages/babel-preset-env) - **The recommended preset** which includes transforms based on the specified environment (browsers, node, electron, etc).\n - [React](https://www.npmjs.com/package/babel-preset-react) - Babel preset for all React plugins.\n - [React Optimize](https://github.com/thejameskyle/babel-react-optimize) - A Babel preset and plugins for optimizing React code.\n\n## Tooling\n\n - [babel-watch](https://github.com/kmagiera/babel-watch) - Reloads a node app on file changes.\n - [babel-time-travel](https://github.com/boopathi/babel-time-travel) - Time travel through babel transformations one by one.\n - [react-ast](https://github.com/codejamninja/react-ast) - Render babel ASTs with react\n\n## License\n\n[![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/)\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/babel%2Fawesome-babel/projects"}