Skip to content

ssr.noExternal doesn't work with every package #5862

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
tylkomat opened this issue Aug 10, 2022 · 1 comment
Closed

ssr.noExternal doesn't work with every package #5862

tylkomat opened this issue Aug 10, 2022 · 1 comment

Comments

@tylkomat
Copy link

tylkomat commented Aug 10, 2022

Describe the bug

As per @benmccann's advice in #5849 I'm providing repo to show that ssr.noExternal fails in some cases and creates a broken built.

Building and running the provided repo results in the following error:

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'context' imported from ...\no-external-test-prod\server\entries\endpoints\index.ts.js

Reproduction

The repo can be pulled from here: https://github.com/tylkomat/no-external-test.
While I was talking about prisma in the previous discussion, this was easier to setup.

adapter-node is configured to build into a sibling folder (../no-external-test-prod) to simulate copying the data to the server, when you run npm run build.

Logs

PS ...\no-external-test> npm run build

> [email protected] build
> vite build

Omitting environment variable "COMMONPROGRAMFILES(X86)" from $env/static/private as it is not a valid identifier
Omitting environment variable "PROGRAMFILES(X86)" from $env/static/private as it is not a valid identifier
vite v3.0.5 building for production...
✓ 14 modules transformed.
.svelte-kit/output/client/manifest.json                                   1.22 KiB
.svelte-kit/output/client/_app/immutable/layout.svelte-add7c5d7.js        0.53 KiB / gzip: 0.35 KiB
.svelte-kit/output/client/_app/immutable/error.svelte-a71bdff9.js         1.56 KiB / gzip: 0.75 KiB
.svelte-kit/output/client/_app/immutable/pages/index.svelte-b1b150f9.js   1.33 KiB / gzip: 0.72 KiB
.svelte-kit/output/client/_app/immutable/chunks/index-03969575.js         6.85 KiB / gzip: 2.80 KiB
.svelte-kit/output/client/_app/immutable/start-638c390d.js                24.04 KiB / gzip: 9.05 KiB
vite v3.0.5 building SSR bundle for production...
✓ 49 modules transformed.
Generated an empty chunk: "hooks"
.svelte-kit/output/server/manifest.json                             1.25 KiB
.svelte-kit/output/server/index.js                                  78.04 KiB
.svelte-kit/output/server/entries/endpoints/index.ts.js             114.25 KiB
.svelte-kit/output/server/entries/fallbacks/layout.svelte.js        0.25 KiB
.svelte-kit/output/server/entries/fallbacks/error.svelte.js         0.74 KiB
.svelte-kit/output/server/entries/pages/index.svelte.js             0.79 KiB
.svelte-kit/output/server/_app/immutable/chunks/index-3e01a4ca.js   2.61 KiB
.svelte-kit/output/server/_app/immutable/chunks/hooks-bced8853.js   0.00 KiB

Run npm run preview to preview your production build locally.

> Using @sveltejs/adapter-node
  ✔ done
PS ...\no-external-test> cp .\package.json ..\no-external-test-prod\
PS ...\no-external-test> node ..\no-external-test-prod\
Listening on 0.0.0.0:3000
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'context' imported from ...\no-external-test-prod\server\entries\endpoints\index.ts.js
    at new NodeError (node:internal/errors:387:5)
    at packageResolve (node:internal/modules/esm/resolve:909:9)
    at moduleResolve (node:internal/modules/esm/resolve:958:20)
    at defaultResolve (node:internal/modules/esm/resolve:1173:11)
    at nextResolve (node:internal/modules/esm/loader:173:28)
    at ESMLoader.resolve (node:internal/modules/esm/loader:852:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:439:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:76:40)
    at link (node:internal/modules/esm/module_job:75:36)

System Info

System:
    OS: Windows 10 10.0.19044
    CPU: (16) x64 AMD Ryzen 7 3700X 8-Core Processor
    Memory: 3.98 GB / 15.93 GB
  Binaries:
    Node: 18.7.0 - ~\AppData\Local\Volta\tools\image\node\18.7.0\node.EXE
    npm: 8.15.0 - ~\AppData\Local\Volta\tools\image\node\18.7.0\npm.CMD
  Browsers:
    Edge: Spartan (44.19041.1266.0), Chromium (104.0.1293.47)
    Internet Explorer: 11.0.19041.1566
  npmPackages:
    @sveltejs/adapter-node: ^1.0.0-next.86 => 1.0.0-next.86
    @sveltejs/kit: next => 1.0.0-next.405
    svelte: ^3.44.0 => 3.49.0
    vite: ^3.0.0 => 3.0.5

Severity

annoyance

Additional Information

No response

@benmccann
Copy link
Member

It's probably because noExternal won't capture transitive dependencies. Try this instead: #3176 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants