{"id":25546,"library":"esprima-fb","title":"Esprima-FB","description":"A Facebook-specific fork of the Esprima JavaScript parser, version 15001.1001.0-dev-harmony-fb, that adds full support for JSX syntax extensions on top of ECMAScript 5.1 and experimental ES6/Harmony features. Unlike standard Esprima, this fork enables parsing JSX as used by React and JSXDOM. It maintains compatibility with Mozilla Parser AST format and includes syntax location tracking. Its versioning scheme maps to upstream Esprima harmony branches with Facebook modifications. No longer actively maintained; replaced by modern parsers like Babel.","status":"deprecated","version":"15001.1001.0-dev-harmony-fb","language":"javascript","source_language":"en","source_url":"http://github.com/facebook/esprima","tags":["javascript"],"install":[{"cmd":"npm install esprima-fb","lang":"bash","label":"npm"},{"cmd":"yarn add esprima-fb","lang":"bash","label":"yarn"},{"cmd":"pnpm add esprima-fb","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM import is preferred; CommonJS require works but returns the module object.","wrong":"const esprima = require('esprima-fb'); esprima.parse(code);","symbol":"parse","correct":"import { parse } from 'esprima-fb';"},{"note":"tokenize is a named export; using .property on require is also valid but less idiomatic.","wrong":"const tokenize = require('esprima-fb').tokenize;","symbol":"tokenize","correct":"import { tokenize } from 'esprima-fb';"},{"note":"Syntax is an object with node type constants; default import is incorrect.","wrong":"import Syntax from 'esprima-fb';","symbol":"Syntax","correct":"import { Syntax } from 'esprima-fb';"}],"quickstart":{"code":"import { parse } from 'esprima-fb';\nconst code = `const element = <div className=\"foo\">Hello</div>;`;\nconst ast = parse(code, { jsx: true, loc: true });\nconsole.log(JSON.stringify(ast, null, 2));","lang":"javascript","description":"Parses JSX code into an AST using esprima-fb with location tracking."},"warnings":[{"fix":"Migrate to @babel/parser or acorn with acorn-jsx plugin.","message":"Esprima-FB is no longer maintained; use Babel parser or acorn-jsx instead.","severity":"deprecated","affected_versions":"*"},{"fix":"Always pass { jsx: true } to parse() when parsing JSX code.","message":"JSX parsing in esprima-fb requires explicitly setting { jsx: true } option; not default.","severity":"breaking","affected_versions":"*"},{"fix":"Use a modern parser that follows the latest ESTree specification.","message":"The AST format may differ from official ESTree spec; incompatible with some tools.","severity":"breaking","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Add { jsx: true } as second argument to parse().","cause":"JSX parsing not enabled; missing { jsx: true } option.","error":"SyntaxError: Unexpected token <"},{"fix":"Install the package: npm install esprima-fb --save","cause":"Package not installed or removed from npm.","error":"Cannot find module 'esprima-fb'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}