Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Export maps and node support

Ouverte
#795 5 commentaires 3 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
À clarifier
Activité
À l'abandon
Stack technique
javascript, node.js
Domaine
build-system

Piste de recherche

Commencez par les champs exports et main de package.json ainsi que par les fichiers générés dist/index.modern.js et dist/index.js ; reproduisez require('color2k') sous Node.js v14.15.3. Comparez la résolution des exports du package avec la documentation de Node sur les exports conditionnels. C’est terminé lorsque la configuration ou la sortie du package publié se charge via require() tout en conservant les points d’entrée du navigateur.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Hello there 👋,

I recently switched to microbundle for a bunch of my libs and I love it so far, however, I ran into an issue where the modern bundle (via exports) doesn't seem to run inside node.js.

My (simplified) package.json looks like this:

{
  "name": "color2k",
  "sideEffects": false,
  "exports": "./dist/index.modern.js",
  "main": "./dist/index.js",
  "unpkg": "./dist/index.umd.js",
  "module": "./dist/index.module.js",
  "source": "./src/index.ts",
  "types": "./dist/index.d.ts",
  "scripts": {
    "build": "microbundle"
  }
}

And after I run microbundle, my dist folder looks like this

index.d.ts
index.js
index.js.map
index.modern.js
index.modern.js.map
index.module.js
index.module.js.map
index.umd.js
index.umd.js.map

And after I publish with this config and run the following code with Node.js, I get the following error:

// my-file.js
const color2k = require('color2k');

// ...

SyntaxError: Unexpected token 'export'
    at wrapSafe (internal/modules/cjs/loader.js:979:16)
    at Module._compile (internal/modules/cjs/loader.js:1027:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)

I suspect this is due to Node.js not knowing what to do with exports. For more context, I'm not using the mjs extension when running this code in node LTS v14.15.3.

Maybe this is more of a question rather than a bug but in general: How do I use exports with microbundle? How can I author a package that is both for Node.js and browsers?

  • Do I need to write a conditional exports map?
  • Do I need to post-fix the modern bundle with the .mjs extension? If so how do I do that with microbundle?

Thanks for any support!

For now, I'll just remove the exports field.

Langage dominant
JavaScript
Étoiles
8.1k
Forks
358
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de developit/microbundle

Toutes les issues de developit/microbundle

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.