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

126
Visualizações
Ignore o reemplace las importaciones de dependencias al agrupar con Rollup

Estoy agrupando una biblioteca JS usando Rollup. Esta biblioteca depende de @tensorflow/tfjs-core .

En el código de tfjs, hay una función que obtiene una URL. Si está en el entorno del navegador, utiliza la función de fetch global; si no es así, intenta importar node-fetch .

Algo entre estas líneas:

 fetch(path: string, requestInits?: RequestInit): Promise<Response> { if (env().global.fetch != null) { return env().global.fetch(path, requestInits); } if (systemFetch == null) { systemFetch = require('node-fetch'); } return systemFetch(path, requestInits); }

Mi biblioteca está hecha para ejecutarse en el navegador, por lo que siempre usa la función de fetch global. Sin embargo, Rollup aún incluye los requisitos de node-fetch en los activos de mi biblioteca.

No debería ser un problema, pero algunos consumidores informan errores cuando usan la biblioteca en un proyecto React que usa un paquete web:

No se pudo compilar.

./node_modules/[my lib]/index.js No se puede encontrar el módulo: 'node-fetch'. Asegúrese de que este paquete esté instalado.

Puede instalar este paquete ejecutando: npm install node-fetch.

La pregunta es: ¿hay alguna manera de decirle a Rollup que no incluye este paquete?

Pensé en reemplazar require('node-fetch') por undefined después de generar el paquete, pero se siente como un truco sucio. ¿Alguna otra sugerencia?

PD: Creo que marcar node-fetch como external en proyectos de consumo solucionaría el problema, pero dado que no uso node-fetch en mi lib, sería bueno eliminarlo de la salida final.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Otros administradores de paquetes pueden incluir o excluir archivos según el entorno, test , development , production , etc.

Hay varias formas de implementar esto, incluso llegando a

 # Makefile ENVIRONMENT ?= test ROLLUP = $(which rollup) ENVSUBST = $(which envsubst) rollup.config.js: src/$(ENVIRONMENT) ${ENVSUBST} < $@ > $^ ${ROLLUP} $^ -o $(ENVIRONMENT).js

Si creó archivos con el nombre de sus entornos, podría compilarlos usando

 make -e environment=browser

No espero que mi código funcione, solo para expresar ideas.

about 4 years ago · Juan Pablo Isaza Relatório

0

Existe esta loc que se usa para excluir la búsqueda de nodos del paquete. Podría considerar un enfoque similar en su configuración de resumen. (Creo) Si agrega eso, node-fetch será/no debería ser parte de su biblioteca minimizada.

about 4 years ago · Juan Pablo Isaza 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