Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

372
Visualizações
¿Cómo uso las URL HTTP con el cargador de módulos Node ESM?

Tengo el siguiente import mongo from "mongodb"; Me gustaría evitar usar npm y, en su lugar, usar unpkg.com como este import mongo from "https://unpkg.com/mongodb"; . Sin embargo, cuando corro me sale...

 ...@penguin:~/...$ node --harmony test.mjs node:internal/process/esm_loader:74 internalBinding('errors').triggerUncaughtException( ^ Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported by the default ESM loader. Received protocol 'https:' at new NodeError (node:internal/errors:328:5) at Loader.defaultResolve [as _resolve] (node:internal/modules/esm/resolve:825:11) at Loader.resolve (node:internal/modules/esm/loader:86:40) at Loader.getModuleJob (node:internal/modules/esm/loader:230:28) at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:56:40) at link (node:internal/modules/esm/module_job:55:36) { code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' }

Debido a que usa el término cargador de módulos predeterminado , me preguntaba si había un cargador ESM alternativo que pudiera usar.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Node eventualmente admitirá importaciones de URL de ESM: https://github.com/nodejs/node/pull/36328 . Esta característica está disponible actualmente bajo una bandera CLI --experimental-https-modules . Todavía no se envía con lanzamientos públicos (a partir de Node 17.8.0), por lo que deberá compilar Node desde la fuente para esto a partir de la actualidad.

Mientras tanto, Node tiene soporte experimental para cargadores de módulos e incluso muestra un cargador HTTPS como ejemplo:

https://nodejs.org/api/esm.html#esm_https_loader

 // https-loader.mjs import { get } from 'https'; export function resolve(specifier, context, defaultResolve) { const { parentURL = null } = context; // Normally Node.js would error on specifiers starting with 'https://', so // this hook intercepts them and converts them into absolute URLs to be // passed along to the later hooks below. if (specifier.startsWith('https://')) { return { url: specifier }; } else if (parentURL && parentURL.startsWith('https://')) { return { url: new URL(specifier, parentURL).href }; } // Let Node.js handle all other specifiers. return defaultResolve(specifier, context, defaultResolve); } export function load(url, context, defaultLoad) { // For JavaScript to be loaded over the network, we need to fetch and // return it. if (url.startsWith('https://')) { return new Promise((resolve, reject) => { get(url, (res) => { let data = ''; res.on('data', (chunk) => data += chunk); res.on('end', () => resolve({ // This example assumes all network-provided JavaScript is ES module // code. format: 'module', source: data, })); }).on('error', (err) => reject(err)); }); } // Let Node.js handle all other URLs. return defaultLoad(url, context, defaultLoad); }

Usar así:

node --experimental-loader ./https-loader.mjs ./main.mjs

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda