Moment: [Módulos ES] Extensões js ausentes nas declarações de importação

Criado em 22 jul. 2018  ·  5Comentários  ·  Fonte: moment/moment

Descrição do problema e etapas para reproduzir:

Ao carregar src/moment.js com <script type=module> :

O carregamento falhou para o módulo com a fonte “ http: // localhost : 5000 / node_modules / moment / src / lib / utils / hooks”.

Ambiente:

Qualquer navegador com suporte para módulos ES.

Documentation wontfix

Comentários muito úteis

Adicionar a extensão de arquivo .js a todas as importações em src/ pode facilmente levar a uma cadeia de até 105-228 solicitações HTTP (dependendo dos locais)

Um resultado mais apropriado pode ser obtido adicionando-se esnext e module propriedades a package.json . De uma série de artigos de Axel Rauschmayer , parece que você deseja algo como:

  "esnext": "src/moment.js",
  "module": "./moment.esm.js",

(onde ./moment.esm.js seria um novo destino de compilação, seguindo o ESM em vez do formato do módulo CJS)

Todos 5 comentários

Adicionar a extensão de arquivo .js a todas as importações em src/ pode facilmente levar a uma cadeia de até 105-228 solicitações HTTP (dependendo dos locais)

Um resultado mais apropriado pode ser obtido adicionando-se esnext e module propriedades a package.json . De uma série de artigos de Axel Rauschmayer , parece que você deseja algo como:

  "esnext": "src/moment.js",
  "module": "./moment.esm.js",

(onde ./moment.esm.js seria um novo destino de compilação, seguindo o ESM em vez do formato do módulo CJS)

+1 para um novo alvo de compilação de ESM. Para referência, Ractive.js fornece um arquivo .mjs dist

Vou fazer uma RP sobre a documentação sobre isso em https://github.com/moment/momentjs.com

A propósito, mesmo com um bom número de solicitações HTTP, pode ser conveniente ter construções de navegador para uso em demos - onde as demos não são forçadas a poluir seu HTML com dependências de script globais (eu sei que seria apenas um script tag se houver uma versão IIFE ou UMD, mas uma tag de script ainda está fora do lugar do JS que a usa e mais limpa para ter uma distribuição de módulo).

@ brettz9 Vou dar uma olhada em PRs que não quebram nenhum usuário existente.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

ninigix picture ninigix  ·  3Comentários

Shoroh picture Shoroh  ·  3Comentários

RobinvanderVliet picture RobinvanderVliet  ·  3Comentários

chitgoks picture chitgoks  ·  3Comentários

IbraheemAlSaady picture IbraheemAlSaady  ·  3Comentários