Babel syntax plugin that enables parsing of import.meta expressions in JavaScript code
npx @tessl/cli install tessl/npm-babel--plugin-syntax-import-meta@7.10.0@babel/plugin-syntax-import-meta is a Babel syntax plugin that enables parsing of import.meta expressions in JavaScript code. This lightweight plugin focuses solely on syntax recognition without transformation, allowing Babel to understand import.meta syntax for environments that support it natively or when used with other transformation plugins.
npm install --save-dev @babel/plugin-syntax-import-metaimport syntaxImportMeta from "@babel/plugin-syntax-import-meta";For CommonJS:
const syntaxImportMeta = require("@babel/plugin-syntax-import-meta");Configure the plugin in your Babel configuration to enable import.meta parsing:
// babel.config.js
module.exports = {
plugins: ["@babel/plugin-syntax-import-meta"]
};Or using the plugin directly in programmatic Babel configuration:
import * as babel from "@babel/core";
import syntaxImportMeta from "@babel/plugin-syntax-import-meta";
const result = babel.transformSync(code, {
plugins: [syntaxImportMeta]
});The plugin follows the standard Babel plugin architecture:
@babel/helper-plugin-utilsimport.meta expressionsCreates a Babel plugin that enables parsing of import.meta expressions.
/**
* Default export: Babel plugin factory function
* @param {BabelAPI} api - Babel API object with version assertion
* @returns {BabelPlugin} Plugin configuration object
*/
function syntaxImportMeta(api: BabelAPI): BabelPlugin;
interface BabelAPI {
assertVersion(version: number): void;
}
interface BabelPlugin {
name: string;
manipulateOptions(opts: any, parserOpts: ParserOptions): void;
}
interface ParserOptions {
plugins: string[];
}The plugin returns a configuration object with:
"syntax-import-meta" - Plugin identifierModifies Babel's parser options to enable import.meta syntax recognition.
/**
* Manipulates parser options to enable import.meta parsing
* @param {any} opts - Plugin configuration options
* @param {ParserOptions} parserOpts - Babel parser options
*/
manipulateOptions(opts: any, parserOpts: ParserOptions): void;This method pushes "importMeta" to the parserOpts.plugins array, enabling the Babel parser to recognize and process import.meta expressions without transforming them.
^7.10.4 - Provides the declare function for plugin creation^7.0.0-0 - Required for Babel plugin executionBasic Babel Configuration:
// babel.config.js
module.exports = {
plugins: ["@babel/plugin-syntax-import-meta"]
};Programmatic Usage:
import * as babel from "@babel/core";
import syntaxImportMeta from "@babel/plugin-syntax-import-meta";
const code = `
const moduleUrl = import.meta.url;
const resolve = import.meta.resolve;
`;
const result = babel.transformSync(code, {
plugins: [syntaxImportMeta]
});Combined with Other Plugins:
// babel.config.js
module.exports = {
plugins: [
"@babel/plugin-syntax-import-meta",
// Other plugins that might transform import.meta
"@babel/plugin-proposal-import-meta-resolve"
]
};