Babel plugin that enables JSX syntax parsing without transformation.
npx @tessl/cli install tessl/npm-babel-plugin-syntax-jsx@6.18.0babel-plugin-syntax-jsx is a Babel plugin that enables JSX syntax parsing without transformation. It provides minimal configuration to allow Babel to recognize and parse JSX syntax, making it essential for JSX-aware tooling and as a prerequisite for JSX transformation plugins.
npm install babel-plugin-syntax-jsxThe plugin is imported as a default export:
import syntaxJsx from "babel-plugin-syntax-jsx";For CommonJS:
const syntaxJsx = require("babel-plugin-syntax-jsx");The plugin is typically configured in Babel rather than used directly:
{
"plugins": ["syntax-jsx"]
}babel --plugins syntax-jsx script.jsconst babel = require("babel-core");
babel.transform("const element = <div>Hello</div>;", {
plugins: ["syntax-jsx"]
});The main export is a Babel plugin factory function that returns a plugin configuration object.
/**
* Creates a Babel plugin that enables JSX syntax parsing
* @returns {object} Babel plugin configuration object
*/
export default function(): BabelPlugin;
interface BabelPlugin {
/**
* Manipulates parser options to add JSX syntax support
* @param opts - Babel transformation options (unused by this plugin)
* @param parserOpts - Parser configuration object
*/
manipulateOptions(opts: any, parserOpts: ParserOptions): void;
}
interface ParserOptions {
/** Array of parser plugins to enable - this plugin adds "jsx" to this array */
plugins: string[];
}Plugin Behavior:
manipulateOptions method"jsx" to the parser's plugins arrayUsage Example:
import syntaxJsx from "babel-plugin-syntax-jsx";
// Get the plugin configuration
const plugin = syntaxJsx();
// The plugin object has a manipulateOptions method
// that will be called by Babel during parsingbabel-plugin-syntax-jsx follows the standard Babel plugin architecture:
manipulateOptions lifecycle hook to modify parser configurationThe plugin serves as a foundational component that: