developit / unfetch

🐕 Bare minimum 500b fetch polyfill.
https://npm.im/unfetch
MIT License
5.71k stars 200 forks source link

Package.json conditional exports points to non-existent files #163

Open IronGeek opened 1 year ago

IronGeek commented 1 year ago

The conditional exports in package.json points to files which does not exist:

https://github.com/developit/unfetch/blob/ee5810e7f9cd769677984b159d7e250adf4611b9/package.json#L16-L20

This causes the following errors when importing unfetch with typescript:

Cannot find module 'unfetch' or its corresponding type declarations.ts(2307)

Also, if you're declaring conditional exports and have type declarations (d.ts) in different location, I think you need to add "types" as the first export condition (see: https://www.typescriptlang.org/docs/handbook/esm-node.html, and https://github.com/microsoft/TypeScript/issues/48235)

Therefore, I believe the correct exports should've been:

  "exports": {
    ".": {
      "types": "./src/index.d.ts",
      "import": "./dist/unfetch.mjs",
      "default": "./dist/unfetch.js"
    },

FWIW, I'm using Typescript 4.9 with moduleResolution": "NodeNext"

IronGeek commented 1 year ago

Sorry, I just realized this might be related to this issue: https://github.com/developit/unfetch/issues/162