or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.md
tile.json

tessl/npm-babel--plugin-syntax-import-meta

Babel syntax plugin that enables parsing of import.meta expressions in JavaScript code

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@babel/plugin-syntax-import-meta@7.10.x

To install, run

npx @tessl/cli install tessl/npm-babel--plugin-syntax-import-meta@7.10.0

index.mddocs/

@babel/plugin-syntax-import-meta

@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.

Package Information

  • Package Name: @babel/plugin-syntax-import-meta
  • Package Type: npm
  • Language: JavaScript
  • Installation: npm install --save-dev @babel/plugin-syntax-import-meta

Core Imports

import syntaxImportMeta from "@babel/plugin-syntax-import-meta";

For CommonJS:

const syntaxImportMeta = require("@babel/plugin-syntax-import-meta");

Basic Usage

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]
});

Architecture

The plugin follows the standard Babel plugin architecture:

  • Plugin Factory: The default export creates a Babel plugin using @babel/helper-plugin-utils
  • Parser Integration: Adds "importMeta" to the parser plugins to enable syntax recognition
  • Syntax Only: No transformation is performed - purely enables parsing of import.meta expressions

Capabilities

Babel Plugin Factory

Creates 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:

  • name: "syntax-import-meta" - Plugin identifier
  • manipulateOptions: Function that adds "importMeta" to parser plugins

manipulateOptions Method

Modifies 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.

Dependencies

Required Dependencies

  • @babel/helper-plugin-utils: ^7.10.4 - Provides the declare function for plugin creation

Peer Dependencies

  • @babel/core: ^7.0.0-0 - Required for Babel plugin execution

Usage Examples

Basic 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"
  ]
};