vite icon indicating copy to clipboard operation
vite copied to clipboard

Running on root directory "Failed to resolve entry for package"

Open ruigomeseu opened this issue 3 years ago • 25 comments

Describe the bug

When running on Linux, in the root directory, if you try to access vite_url:3000/path-of-working-dir, you will get the following error:

Failed to resolve entry for package "/my-vue-app". The package may have incorrect main/module/exports specified in its package.json: Failed to resolve entry for package "/my-vue-app". The package may have incorrect main/module/exports specified in its package.json.

Steps to reproduce:

  1. cd /
  2. npm create vite@latest my-vue-app -- --template vue
  3. cd my-vue-app
  4. npm run dev
  5. Access http://192.168.64.13:3000/my-vue-app
  6. See error

If my-vue-app is on any other folder other than / (root directory) this error doesn't happen.

This is running on a Ubuntu VM inside my M1 Pro Macbook.

Reproduction

Reproduction steps above

System Info

System:
    OS: Linux 5.4 Ubuntu 20.04.3 LTS (Focal Fossa)
    CPU: (4) arm64 unknown
    Memory: 1.27 GB / 7.75 GB
    Container: Yes
    Shell: 5.0.17 - /bin/bash
  Binaries:
    Node: 16.13.2 - /usr/bin/node
    Yarn: 1.22.15 - /usr/bin/yarn
    npm: 8.1.2 - /usr/bin/npm
  Browsers:
    Chromium: 98.0.4758.80
  npmPackages:
    @vitejs/plugin-vue: ^2.2.0 => 2.2.0
    vite: ^2.8.0 => 2.8.0

Used Package Manager

npm

Logs

Failed to resolve entry for package "/my-vue-app". The package may have incorrect main/module/exports specified in its package.json: Failed to resolve entry for package "/my-vue-app". The package may have incorrect main/module/exports specified in its package.json.
    at packageEntryFailure (/my-vue-app/node_modules/vite/dist/node/chunks/dep-c9c9d3e5.js:29511:11)
    at resolvePackageEntry (/my-vue-app/node_modules/vite/dist/node/chunks/dep-c9c9d3e5.js:29507:9)
    at tryResolveFile (/my-vue-app/node_modules/vite/dist/node/chunks/dep-c9c9d3e5.js:29237:38)
    at tryFsResolve (/my-vue-app/node_modules/vite/dist/node/chunks/dep-c9c9d3e5.js:29219:16)
    at Context.resolveId (/my-vue-app/node_modules/vite/dist/node/chunks/dep-c9c9d3e5.js:29112:56)
    at Object.resolveId (/my-vue-app/node_modules/vite/dist/node/chunks/dep-c9c9d3e5.js:38242:55)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async ModuleGraph.resolveUrl (/my-vue-app/node_modules/vite/dist/node/chunks/dep-c9c9d3e5.js:53426:26)
    at async ModuleGraph.getModuleByUrl (/my-vue-app/node_modules/vite/dist/node/chunks/dep-c9c9d3e5.js:53311:23)
    at async doTransform (/my-vue-app/node_modules/vite/dist/node/chunks/dep-c9c9d3e5.js:52879:20


### Validations

- [X] Follow our [Code of Conduct](https://github.com/vitejs/vite/blob/main/CODE_OF_CONDUCT.md)
- [X] Read the [Contributing Guidelines](https://github.com/vitejs/vite/blob/main/CONTRIBUTING.md).
- [X] Read the [docs](https://vitejs.dev/guide).
- [X] Check that there isn't [already an issue](https://github.com/vitejs/vite/issues) that reports the same bug to avoid creating a duplicate.
- [X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/core instead.
- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vitejs/vite/discussions) or join our [Discord Chat Server](https://chat.vitejs.dev/).
- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.

ruigomeseu avatar Feb 11 '22 00:02 ruigomeseu

I've tested in a container running node:16-alpine interactively on a Linux host (5.14) and the bug is reproducible.

$ docker run --rm -it node:16-alpine ash
# npm create vite@latest my-vue-app -- --template vue
# cd /my-vue-app
# yarn
# yarn run dev --host

Then on a browser: -> http://172.17.0.2:3000/my-vue-app -> Error 500

johnnyasantoss avatar Feb 11 '22 18:02 johnnyasantoss

[vite] Internal server error: Failed to resolve entry for package...

Workaround; Entry point differs from index.js in root folder. Add your entrypoint to package.json main key:

{
  "main": "[your_entry_point]"
}

daliborgogic avatar Apr 01 '22 08:04 daliborgogic

I encounter this issue with vite 2.9+ and it wasn't the case before. Defining an entry point in the “main” field of package.json indeed solve the issue.

But since I'm already defining my two entry points in optimizeDeps.entries I think it shouldn't be necessary to include them as well in the package.json

mquandalle avatar Apr 03 '22 15:04 mquandalle

Same. Started facing this after 2.9. I was able to reproduce it here - https://stackblitz.com/edit/github-12zodn?file=src%2Fentry-server.js&terminal=dev

For me, It seems to be happening when I use vite.transformIndexHtml and pass <style> tags to it during SSR 🤔

saurabhdaware avatar Apr 26 '22 13:04 saurabhdaware

@saurabhdaware My issue was indeed caused by transformIndexHtml and I was able to fix it in https://github.com/betagouv/mon-entreprise/commit/c2014f73f6dd0f688b9b61cf39ce11f9b0556a21

You probably don't have the exact same problem but you can log req.url to see what is the request causing this error.

mquandalle avatar Apr 26 '22 13:04 mquandalle

I think vitejs/vite#7869 will resolve this right @poyoho? (Ref: https://github.com/vitejs/vite/issues/6859#issuecomment-1109806891)

I am guessing the issue is happening because transformIndexHtml was rendering a <script> tag with a non-existent src 🤔

saurabhdaware avatar Apr 26 '22 14:04 saurabhdaware

You probably don't have the exact same problem but you can log req.url to see what is the request causing this error.

Yeah I think my issue is a bit different. Due to vitejs/vite#7913 my code is rendering a non-existent src in <script>. Vite then probably thinks that it is my entry file and fails since it doesn't exist.

saurabhdaware avatar Apr 26 '22 14:04 saurabhdaware

hello, is same with vitejs/vite#7913 ?

poyoho avatar Apr 26 '22 14:04 poyoho

after this PR, inline style will keep. and add a request for hmr. I test it in vite playground, it seem to work well. could you like to test in your case?

poyoho avatar Apr 26 '22 14:04 poyoho

hello, is same with https://github.com/vitejs/vite/issues/7913 ?

It is a bit different. The issue I mentioned in comment here https://github.com/vitejs/vite/issues/6859#issuecomment-1109806891 seems to be because of the inlined CSS change however the cause for the original issue might be different.

But I don't think it will resolve this issue since it seems to be created before 2.9 release. The reason for original issue is probably different.

after this PR, inline style will keep. and add a request for hmr. I test it in vite playground, it seem to work well. could you like to test in your case?

Yup I'll check this

saurabhdaware avatar Apr 26 '22 15:04 saurabhdaware

Just checked locally for my use-case. Your PR did fix the vitejs/vite#7913 but it did not fix this issue for me. This might be something different.

saurabhdaware avatar Apr 26 '22 15:04 saurabhdaware

I noted. Is may all request process into transformIndex, error handle ?html-proxy&1.css

poyoho avatar Apr 26 '22 15:04 poyoho

I don't konw . Is same problem cause of this ?

AshenBird avatar Apr 27 '22 09:04 AshenBird

If I create a package at root directory , and package directory name is "foo“ , then vite devsever response vite_url:3000/foo , will throw this error.

AshenBird avatar Apr 27 '22 10:04 AshenBird

https://stackblitz.com/edit/github-12zodn-j9tw2b?file=server.js I test it, it maybe is not the vite bug?

poyoho avatar Apr 28 '22 09:04 poyoho

We fixed the issue using the workaround provided by https://github.com/vitejs/vite/issues/6859#issuecomment-1086895007.

Adding "main" to our package.json fixed the issue. This would still be a bug if adding it shouldn't be necessary. Otherwise, is fixed.

johnnyasantoss avatar Apr 28 '22 18:04 johnnyasantoss

oh sorry, I think it same with https://github.com/vitejs/vite-plugin-vue/issues/25 ?

poyoho avatar Apr 29 '22 09:04 poyoho

Not sure if I understood the 7220 but it seems a bit different to me.

For me this is happening when I pass <style></style> to vite.transformIndexHtml

I added some logs in this - https://stackblitz.com/edit/github-12zodn-joz2gx?file=server.js&terminal=dev

You can see that it is failing on transformIndexHtml 🤔

saurabhdaware avatar May 02 '22 15:05 saurabhdaware

Hello @poyoho Nice to meet you. Now I am having this issue:

[vite] Internal server error: Cannot set properties of undefined (setting 'isSelfAccepting')
  Plugin: vite:import-analysis

When I pnpm i, then it shows the above issue. Vite version is 3.0.8 and Svelte version is 3.49.0 so how can fix this issue?

chris-sab avatar Aug 17 '22 16:08 chris-sab

@chris-sab do you create the project start with root dir /?

poyoho avatar Aug 20 '22 12:08 poyoho

I get a different, but possibly related bug when I try to build with Vite (first time user). The difference is that Vite is failing to link a dependency of one of my dependencies. I'm using Vite 3.0.9 on MacOS.

[commonjs] Failed to resolve entry for package "@opentelemetry/otlp-exporter-base". The package may have incorrect main/module/exports specified in its package.json.
file: /Users/kris/WebstormProjects/polywrap/demos/hello-world/app/solidjs/node_modules/@polywrap/core-js/build/uri-resolution/resolvers/index.js
error during build:
Error: Failed to resolve entry for package "@opentelemetry/otlp-exporter-base". The package may have incorrect main/module/exports specified in its package.json.
    at packageEntryFailure (file:///Users/kris/WebstormProjects/polywrap/demos/hello-world/app/solidjs/node_modules/vite/dist/node/chunks/dep-0fc8e132.js:34705:11)
    at resolvePackageEntry (file:///Users/kris/WebstormProjects/polywrap/demos/hello-world/app/solidjs/node_modules/vite/dist/node/chunks/dep-0fc8e132.js:34702:5)
    at tryNodeResolve (file:///Users/kris/WebstormProjects/polywrap/demos/hello-world/app/solidjs/node_modules/vite/dist/node/chunks/dep-0fc8e132.js:34452:20)
    at Object.resolveId (file:///Users/kris/WebstormProjects/polywrap/demos/hello-world/app/solidjs/node_modules/vite/dist/node/chunks/dep-0fc8e132.js:34254:28)
    at file:///Users/kris/WebstormProjects/polywrap/demos/hello-world/app/solidjs/node_modules/rollup/dist/es/shared/rollup.js:22695:37
error Command failed with exit code 1.

krisbitney avatar Sep 07 '22 09:09 krisbitney

@krisbitney did you end up figuring this out?

xpluscal avatar Dec 23 '22 20:12 xpluscal

Still having same issue !!!

ghyath5 avatar Jan 07 '23 15:01 ghyath5

Same issue for me as well

node: 18.12.1 pnpm: 7.20.0 vite: 2.9.10 vue: 3.2.45

✘ [ERROR] [plugin vite:dep-scan] Failed to resolve entry for package "primevue/menuitem". The package may have incorrect main/module/exports specified in its package.json: Failed to resolve entry for package "primevue/menuitem". The package may have incorrect main/module/exports specified in its package.json.

levitomer avatar Jan 10 '23 16:01 levitomer

I have also noticed that if vite can't find the lib in question it reports using this error. Instead of saying it's missing it says something else which is confusing. I have solved this by adding the package to the lib that was missing.

emahuni avatar Jan 24 '23 07:01 emahuni

I had the same error as you and the reason was in <video poster="/"> because the poster had the path '/' stupid mistake)

Chambo015 avatar Feb 24 '23 15:02 Chambo015

I started having this issue when one of my dependencies switched from using the main field to browser field for its main entry point.

The only solution I have found is to declare an alias for this dependency pointing to its entry point in the vite.config.ts file.

// simplified for brevity
export default defineConfig({
  resolve: {
    alias: {
      'leaflet.gridlayer.googlemutant': './node_modules/leaflet.gridlayer.googlemutant/dist/Leaflet.GoogleMutant.js'
    }
  }
})

I hope this gets fixed soon.

dnasir avatar Mar 03 '23 08:03 dnasir

I've the same issue, I cloned https://github.com/vitejs/vite-plugin-vue and tried the /playground/ssr-vue example, after installing with pnpm and npm run dev

> @vitejs/[email protected] dev
> node server

✘ [ERROR] [plugin externalize-deps] Failed to resolve entry for package "@vitejs/plugin-vue". The package may have incorrect main/module/exports specified in its package.json.

Node.js v19.7.0

gocoffeecup avatar Mar 05 '23 19:03 gocoffeecup

This is replicable using React with React Router too. For anyone else with the same problem, as the above says just set your main in package.json to:

"main": "./src/main.tsx",

ATypescriptEnjoyer avatar Mar 17 '23 00:03 ATypescriptEnjoyer

I had the same error, deleting node_modules and running npm install again worked for me with Vite version on v4.1.4

Damilare1 avatar Mar 18 '23 14:03 Damilare1