import.meta

O objeto mostra o import.meta mostra o contexto específico metadata para um módulo JavaScript. Ele contém informações sobre o módulo, como a sua URL.

Sintaxe 

import.meta

Descrição

A sintaxe consiste na palavra chave import, um ponto, e o identificador meta. Normalmente no lado esquerdo do ponto é o objeto na qual a propriedade de acesso é realizada is, mas aqui import não é exatamente um objeto.

O objetoimport.meta foi criado no implementação ECMAScript,com um protótipo null. O objeto é extensível, e suas propriedades são grávaveis, configuráveis, e enumeráveis.

Exemplos

Usando import.meta

Dado o modulo my-module.js

<script type="module" src="my-module.js"></script>

Você pode acessar essa meta informação sobre o modulo usando o objeto import.meta.

console.log(import.meta); // { url: "file:///home/user/my-module.js" }

Irá returnar um objeto com propriedade URL indicando a base URL do módulo. Isso vai ser o URL da qual o script obteve, por scripts external, ou a base do documento URL contendo documento, para scripts inline.

Note que isso irá incluir parâmetros query e/ou cerquilha (i.e., seguindo o ? ou #).

Por exemplo, seguindo esse HTML:

<script type="module">
import './index.mjs?someURLInfo=5';
</script>

O arquivo JavaScript a seguir vai registrar o parâmetro `someURLInfo:

// index.mjs
new URL(import.meta.url).searchParams.get('someURLInfo'); // 5

O mesmo se aplica quando um arquivo importa outro:

// index.mjs
import './index2.mjs?someURLInfo=5';

// index2.mjs
new URL(import.meta.url).searchParams.get('someURLInfo'); // 5

Note que enquanto o Node.js vai passar nos parâmetros query (ou na cerquilha) como no exemplo passsado, a partir do Node 14.1.0, a URL com parâmetro query vai dar erro quando carregar no formulário  node --experimental-modules index.mjs?someURLInfo=5 (é tratado como um arquivo ao invés de uma  URL nesse contexto).

Nesse arquivo específico, o argumento passado pode ser complementar para ser usado na ampla aplicação location.href (com strings query ou cerquilha adicionada depois do caminho de arquivo HTML) (ou por Node.js, através do process.argv).

Especifícações

Especifícação
import.meta 
HTML Living Standard
The definition of 'import.meta' in that specification.

 Compartibilidade no Browser 

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
import.metaChrome Full support 64Edge Full support 79Firefox Full support 62IE No support NoOpera Full support 51Safari Full support 11.1WebView Android Full support 64Chrome Android Full support 64Firefox Android Full support 62Opera Android Full support 47Safari iOS Full support 12Samsung Internet Android Full support 9.0nodejs Full support 10.4.0

Legend

Full support  
Full support
No support  
No support

Progressão de implementação

A tabela seguinte fornece um status de implementação diária para essa feature, porque ela ainda não alcançou a estabilidade cross-browser. Os dados são gerados por relevantes testes de feature no Test262, o padrão de teste para JavaScript, em build noturno, ou no ultimo lançamento de cada engine browser de JavaScript.

Veja também