thecodejack/svelte-file-dropzone

vitest - Failed to resolve entry for package "svelte-file-dropzone"

codinkai opened this issue · 10 comments

Hi,
when running vitest, I get the following error after installing "svelte-file-dropzone":

$ npm run test

> my-app@0.0.1 test
> vitest


 DEV  v0.34.6 C:/Workspace/playground/my-app


⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯Error: Failed to resolve entry for package "svelte-file-dropzone". The package may have incorrect main/module/exports specified in 
its package.json: Missing "." specifier in "svelte-file-dropzone" package
 ❯ packageEntryFailure node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:28730:11
 ❯ resolvePackageEntry node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:28725:9
 ❯ tryNodeResolve node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:28458:20
 ❯ Context.resolveId node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:28217:28
 ❯ Object.resolveId node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:44279:64
 ❯ async file:/C:/Workspace/playground/my-app/node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:65919:21
 ❯ async file:/C:/Workspace/playground/my-app/node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:44924:20
 ❯ addManuallyIncludedOptimizeDeps node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:46107:31
 ❯ optimizeServerSsrDeps node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:45711:5
 ❯ createDevSsrDepsOptimizer node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:45629:22

Steps to recreate:

npm create svelte@latest my-app 
# Select DemoApp, TypeScript, ESLint, Prettier and Vitest

cd my-app
npm install

npx vitest src/*
# works

npm install svelte-file-dropzone
npx vitest src/* 
# FAILS

Do you know what might cause the problem?

The issue can be fixed by changing the exports parameter to the following code snippet in the package.json and adding the empty files index.d.ts and index.js.

  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "svelte": "./dist/index.js"
    },
    "./Dropzone.svelte": {
      "types": "./dist/components/Dropzone.svelte.d.ts",
      "svelte": "./dist/components/Dropzone.svelte"
    }
  },

Same problem with vitest 0.34.6 and svelte-file-dropzone 2.0.2

I believe this bug can be fixed by my PR (#144). I am not sure when they can merge this to main.

Alternatively, you can downgrade vitest to 0.33.0. the version above 0.33.1 does not work with this component.

Hello, everyone, we forked to our organisation and fixed this bug. published NPM package.

Also, I upgraded svelte3 to svelte4 in package.

You can use our package if you want.

https://www.npmjs.com/package/@undp-data/svelte-file-dropzone

Hi @JinIgarashi

Would you be able to create a new PR? I see you closed older one.

@thecodejack no, not easy to create a PR to this because there are several different fixes mixed in main branch of our forked repo. But the changes are not a lot, you can fix by following my repo's change.

UNDP-Data#1

major changes on PR are

  • added index.ts under lib folder
  • added . in exports in package.json
  • updated dependencies in package.json
  • added changeset to manage NPM package release job
  • added GitHub action to build and release package
  • changed NPM package name from svelte-file-dropzone to @undp-data/svelte-file-dropzone

If you are happy with these above changes except the last one (package name), I can create a PR to this repo immediately (I can just change package name to original one only), otherwise I have no time to extract only changes on this issue to make a PR. Thanks.

Please create the PR from your repo. I can look into that and merge further.

If possible avoid last 3 steps.

@thecodejack created new PR #150. you can merge it if you want

This ticket was closed, but the fix doesn't appear to be available in the published 2.0.2 package.