oven-sh / bun

Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
https://bun.sh
Other
73.42k stars 2.7k forks source link

Support Qwik City (Vite framework for Qwik) #3783

Closed birkskyum closed 9 months ago

birkskyum commented 1 year ago

Qwik - Qwik City - GitHub

What version of Bun is running?

0.7.1

What platform is your computer?

Darwin 22.5.0 arm64 arm

What steps can reproduce the bug?

What is the expected behavior?

bun --bun run dev

VITE v4.4.0  ready in 939 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h to show help

  ❗️ Expect significant performance loss in development.
  ❗️ Disabling the browser's cache results in waterfall requests.

What do you see instead?

➜ bun --bun run dev
$ vite --mode ssr
failed to load config from /Users/admin/repos/qwik-test/qwik-2/vite.config.ts
error when starting dev server:
Error: config must export or return an object.
    at <anonymous> (/Users/admin/repos/qwik-test/qwik-2/node_modules/vite/dist/node/chunks/dep-1d3a4915.js:65938:15)
error: script "dev" exited with code 1 (SIGHUP)
Last part of Debug Log ```zig [ModuleLoader] transpileFile: /Users/admin/repos/qwik-test/qwik-3/node_modules/svgo/plugins/removeXMLNS.js [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [fs] openat(0, /Users/admin/repos/qwik-test/qwik-3/node_modules/svgo/plugins/removeXMLNS.js) = 6 [fs] stat(6) = 627 [fs] pread(6, 627) = 627 [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] createLatin1 (src/string.zig:324) [SYS] close(6) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) [JSC] fromJS (src/string.zig:427) [JSC] fromJS (src/string.zig:427) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) [JSC] toJS (src/string.zig:449) [JSC] Bun__fetchBuiltinModule (src/bun.js/module_loader.zig:1574) [JSC] Bun__transpileFile (src/bun.js/module_loader.zig:1600) [ModuleLoader] transpileFile: /Users/admin/repos/qwik-test/qwik-3/node_modules/svgo/plugins/reusePaths.js [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [fs] openat(0, /Users/admin/repos/qwik-test/qwik-3/node_modules/svgo/plugins/reusePaths.js) = 6 [fs] stat(6) = 3441 [fs] pread(6, 3441) = 3441 [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] createLatin1 (src/string.zig:324) [SYS] close(6) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) [JSC] Bun__fetchBuiltinModule (src/bun.js/module_loader.zig:1574) [JSC] Bun__runVirtualModule (src/bun.js/module_loader.zig:1651) [CPP] JSGlobalObject__bunVM [CPP] JSGlobalObject__bunVM [JSC] Bun__transpileFile (src/bun.js/module_loader.zig:1600) [ModuleLoader] transpileFile: /Users/admin/repos/qwik-test/qwik-3/node_modules/debug/src/index.js [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [fs] openat(0, /Users/admin/repos/qwik-test/qwik-3/node_modules/debug/src/index.js) = 6 [fs] stat(6) = 314 [fs] pread(6, 314) = 314 [JSC] createLatin1 (src/string.zig:324) [SYS] close(6) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) loader [parsing] /Users/admin/repos/qwik-test/qwik-3/node_modules/debug/src/index.js [JSC] fromJS (src/string.zig:427) [JSC] fromJS (src/string.zig:427) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) [JSC] toJS (src/string.zig:449) [JSC] Bun__fetchBuiltinModule (src/bun.js/module_loader.zig:1574) [JSC] Bun__transpileFile (src/bun.js/module_loader.zig:1600) [ModuleLoader] transpileFile: /Users/admin/repos/qwik-test/qwik-3/node_modules/debug/src/node.js [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [fs] openat(0, /Users/admin/repos/qwik-test/qwik-3/node_modules/debug/src/node.js) = 6 [fs] stat(6) = 4685 [fs] pread(6, 4685) = 4685 [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] createLatin1 (src/string.zig:324) [SYS] close(6) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) [JSC] fromJS (src/string.zig:427) [JSC] fromJS (src/string.zig:427) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) [JSC] toJS (src/string.zig:449) [JSC] Bun__fetchBuiltinModule (src/bun.js/module_loader.zig:1574) [JSC] Bun__transpileFile (src/bun.js/module_loader.zig:1600) [ModuleLoader] transpileFile: /Users/admin/repos/qwik-test/qwik-3/node_modules/debug/src/common.js [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [fs] openat(0, /Users/admin/repos/qwik-test/qwik-3/node_modules/debug/src/common.js) = 6 [fs] stat(6) = 6289 [fs] pread(6, 6289) = 6289 [fs] open(/Users/admin/repos/qwik-test/qwik-3/node_modules/ms) = fs.IterableDir{ .dir = fs.Dir{ .fd = 9 } } [fs] readdir(9, /Users/admin/repos/qwik-test/qwik-3/node_modules/ms/) = 4 [fs] openat(9, /Users/admin/repos/qwik-test/qwik-3/node_modules/ms/package.json) = 10 [fs] stat(10) = 705 [fs] pread(10, 705) = 705 [SYS] close(10) [SYS] close(9) [JSC] createLatin1 (src/string.zig:324) [SYS] close(6) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) [JSC] fromJS (src/string.zig:427) [JSC] fromJS (src/string.zig:427) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) [JSC] toJS (src/string.zig:449) [JSC] Bun__fetchBuiltinModule (src/bun.js/module_loader.zig:1574) [JSC] Bun__transpileFile (src/bun.js/module_loader.zig:1600) [ModuleLoader] transpileFile: /Users/admin/repos/qwik-test/qwik-3/node_modules/ms/index.js [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [fs] openat(0, /Users/admin/repos/qwik-test/qwik-3/node_modules/ms/index.js) = 6 [fs] stat(6) = 3023 [fs] pread(6, 3023) = 3023 [JSC] parseDouble (src/bun.js/bindings/bindings.zig:5508) [JSC] parseDouble (src/bun.js/bindings/bindings.zig:5508) [JSC] createLatin1 (src/string.zig:324) [SYS] close(6) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) [JSC] Bun__fetchBuiltinModule (src/bun.js/module_loader.zig:1574) [JSC] Bun__runVirtualModule (src/bun.js/module_loader.zig:1651) [CPP] JSGlobalObject__bunVM [CPP] JSGlobalObject__bunVM [JSC] Bun__transpileFile (src/bun.js/module_loader.zig:1600) [ModuleLoader] transpileFile: /Users/admin/repos/qwik-test/qwik-3/node_modules/globrex/index.js [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [fs] openat(0, /Users/admin/repos/qwik-test/qwik-3/node_modules/globrex/index.js) = 6 [fs] stat(6) = 7901 [fs] pread(6, 7901) = 7901 [JSC] createLatin1 (src/string.zig:324) [SYS] close(6) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) loader [parsing] /Users/admin/repos/qwik-test/qwik-3/node_modules/globrex/index.js [JSC] Bun__fetchBuiltinModule (src/bun.js/module_loader.zig:1574) [JSC] Bun__runVirtualModule (src/bun.js/module_loader.zig:1651) [CPP] JSGlobalObject__bunVM [CPP] JSGlobalObject__bunVM [JSC] Bun__transpileFile (src/bun.js/module_loader.zig:1600) [ModuleLoader] transpileFile: /Users/admin/repos/qwik-test/qwik-3/node_modules/tsconfck/dist/index.js [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [fs] openat(0, /Users/admin/repos/qwik-test/qwik-3/node_modules/tsconfck/dist/index.js) = 6 [fs] stat(6) = 24921 [fs] pread(6, 24921) = 24921 [JSC] createLatin1 (src/string.zig:324) [SYS] close(6) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) loader [parsing] /Users/admin/repos/qwik-test/qwik-3/node_modules/tsconfck/dist/index.js Loader [resolve] node:path [JSC] resolve (src/bun.js/bindings/exports.zig:69) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) Loader [resolve] node:fs [JSC] resolve (src/bun.js/bindings/exports.zig:69) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) Loader [resolve] node:module [JSC] resolve (src/bun.js/bindings/exports.zig:69) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] deref (src/string.zig:95) [JSC] deref (src/string.zig:95) Loader [link] /Users/admin/repos/qwik-test/qwik-3/node_modules/vite/dist/node/index.js Loader [link] /Users/admin/repos/qwik-test/qwik-3/node_modules/@builder.io/qwik/optimizer.mjs Loader [link] /Users/admin/repos/qwik-test/qwik-3/node_modules/source-map/source-map.js Loader [link] node:http2 Loader [link] node:stream/web Loader [link] undici Loader [link] /Users/admin/repos/qwik-test/qwik-3/node_modules/svgo/lib/svgo-node.js Loader [link] /Users/admin/repos/qwik-test/qwik-3/node_modules/@builder.io/qwik-city/vite/index.mjs Loader [link] /Users/admin/repos/qwik-test/qwik-3/node_modules/debug/src/index.js Loader [link] /Users/admin/repos/qwik-test/qwik-3/node_modules/globrex/index.js Loader [link] /Users/admin/repos/qwik-test/qwik-3/node_modules/tsconfck/dist/index.js Loader [link] /Users/admin/repos/qwik-test/qwik-3/node_modules/vite-tsconfig-paths/dist/index.mjs Loader [link] /Users/admin/repos/qwik-test/qwik-3/vite.config.ts Loader [evaluate] /Users/admin/repos/qwik-test/qwik-3/node_modules/vite/dist/node/index.js Loader [evaluate] /Users/admin/repos/qwik-test/qwik-3/node_modules/@builder.io/qwik/optimizer.mjs Loader [evaluate] /Users/admin/repos/qwik-test/qwik-3/node_modules/source-map/source-map.js Loader [evaluate] node:http2 Loader [evaluate] node:stream/web Loader [evaluate] undici Loader [evaluate] /Users/admin/repos/qwik-test/qwik-3/node_modules/svgo/lib/svgo-node.js Loader [evaluate] /Users/admin/repos/qwik-test/qwik-3/node_modules/@builder.io/qwik-city/vite/index.mjs Loader [evaluate] /Users/admin/repos/qwik-test/qwik-3/node_modules/debug/src/index.js Loader [evaluate] /Users/admin/repos/qwik-test/qwik-3/node_modules/globrex/index.js Loader [evaluate] /Users/admin/repos/qwik-test/qwik-3/node_modules/tsconfck/dist/index.js Loader [evaluate] /Users/admin/repos/qwik-test/qwik-3/node_modules/vite-tsconfig-paths/dist/index.mjs [JSC] platform (src/bun.js/node/node_os.zig:548) [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [CPP] ZigString__toValueGC Loader [evaluate] /Users/admin/repos/qwik-test/qwik-3/vite.config.ts [CPP] JSGlobalObject__bunVM [CPP] JSGlobalObject__bunVM [CPP] JSValue__isBoolean [CPP] JSValue__jsType [CPP] JSGlobalObject__vm [CPP] JSValue__isCallable [CPP] JSValue__toZigString [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) failed to load config from /Users/admin/repos/qwik-test/qwik-3/vite.config.ts [CPP] JSGlobalObject__bunVM [CPP] JSGlobalObject__bunVM [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) [JSC] ref (src/string.zig:107) [JSC] deref (src/string.zig:95) [CPP] JSGlobalObject__bunVM [CPP] JSGlobalObject__bunVM [CPP] JSValue__isBoolean [CPP] JSValue__jsType [CPP] JSGlobalObject__vm [CPP] JSValue__isCallable [CPP] JSValue__toZigString [JSC] ascii (src/bun.js/bindings/bun-simdutf.zig:105) error when starting dev server: Error: config must export or return an object. at (/Users/admin/repos/qwik-test/qwik-3/node_modules/vite/dist/node/chunks/dep-1d3a4915.js:65938:15) at asyncFunctionResume (native) at promiseReactionJobWithoutPromise (native) [CPP] JSGlobalObject__bunVM [CPP] JSGlobalObject__bunVM [JSC] dispatchOnExit (src/bun.js/javascript.zig:353) error: script "dev" exited with code 1 (SIGHUP) ```

Additional information

There could be multiple issues here

For the latter issue the dependency graph is: @builder.io/qwik-city (in package.json) -> vite-imagetools -> imagetools-core -> sharp

Related Sharp tickets (See Bun 7.1 update below)

Related tickets of the vite.config.ts issue (Solved)

birkskyum commented 1 year ago

Update for Bun 7.1 - Qwik City now returns only the Sharp issue:

➜ bun --bun run dev     
$ vite --mode ssr
error when starting dev server:
Error: 
Something went wrong installing the "sharp" module

Cannot find module "../build/Release/sharp-darwin-arm64v8.node" from "/Users/admin/repos/qwik-test/qwik-2/node_modules/sharp/lib/sharp.js"

Possible solutions:
- Install with verbose logging and look for errors: "npm install --ignore-scripts=false --foreground-scripts --verbose sharp"
- Install for the current darwin-arm64v8 runtime: "npm install --platform=darwin --arch=arm64v8 sharp"
- Consult the installation documentation: https://sharp.pixelplumbing.com/install
    at <anonymous> (/Users/admin/repos/qwik-test/qwik-2/node_modules/sharp/lib/sharp.js:36:33)
    at global code (/Users/admin/repos/qwik-test/qwik-2/node_modules/sharp/lib/sharp.js:24:8)
    at anonymous (native)
    at require (native)
    at <anonymous> (/Users/admin/repos/qwik-test/qwik-2/node_modules/sharp/lib/constructor.js:13:6)
    at global code (/Users/admin/repos/qwik-test/qwik-2/node_modules/sharp/lib/constructor.js:194:8)
    at anonymous (native)
    at require (native)
    at <anonymous> (/Users/admin/repos/qwik-test/qwik-2/node_modules/sharp/lib/index.js:6:0)
    at global code (/Users/admin/repos/qwik-test/qwik-2/node_modules/sharp/lib/index.js:12:8)
error: script "dev" exited with code 1 (SIGHUP)
alfredskeden commented 1 year ago

Update for Bun 7.1 - Qwik City now returns only the Sharp issue

I also get this error running

bun create qwik
bun --bun run dev
EamonHeffernan commented 1 year ago

@birkskyum Do you know if this can be solved by adding sharp to the trusted dependencies for the qwik project?

birkskyum commented 1 year ago

@EamonHeffernan , it can yes. Bun runtime does support qwik alright, it's just bun install that is troublesome. The trustedDependencies is a bit flaky, so you might have to delete bun.lockb and node_modules before running bun install again. Related

You can also just run npm install instead like the Bun Qwik adapter (https://github.com/BuilderIO/qwik/pull/5129)

EamonHeffernan commented 1 year ago

@EamonHeffernan , it can yes. Bun runtime does support qwik alright, it's just bun install that is troublesome. The trustedDependencies is a bit flaky, so you might have to delete bun.lockb and node_modules before running bun install again. Related

* [Fix `postinstall` and finish `trustedDependencies` #4959](https://github.com/oven-sh/bun/issues/4959)

You can also just run npm install instead like the Bun Qwik adapter (BuilderIO/qwik#5129)

Hi, thanks. That's my pr haha. I was just seeing if there was something that could be added to the package.json automatically on bun create qwik that makes it work with bun packages.

alfredskeden commented 1 year ago

yes bun create qwik did now work for me in 1.0.3

EamonHeffernan commented 12 months ago

yes bun create qwik did now work for me in 1.0.3

On the qwik side of things, it is now adding sharp to trusted dependencies in the template. The underlying issue is not solved.

birkskyum commented 9 months ago

Amazing! This works as expected with canary (1.0.17+5e60861c3)

  VITE v5.0.8  ready in 783 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h + enter to show help

  ❗️ Expect significant performance loss in development.
  ❗️ Disabling the browser's cache results in waterfall requests.
birkskyum commented 9 months ago

❗️ Expect significant performance loss in development. ❗️ Disabling the browser's cache results in waterfall requests.

These warnings are a bit concerning though... idk

FreddieLeRobot commented 7 months ago

After creating an empty project using bun create qwik, running bun run build fails with the following message. Is there something else I need to do before building?

Error: [vite-plugin-qwik] Not implemented at <anonymous> (/home/fred/repos/Server-Start/server-page/node_modules/@builder.io/qwik/optimizer.mjs:2721:18) at processTicksAndRejections (:12:39) error: script "build.client" exited with code 1 error: script "build" exited with code 1

gaetan1903 commented 5 months ago

After creating an empty project using bun create qwik, running bun run build fails with the following message. Is there something else I need to do before building?

Error: [vite-plugin-qwik] Not implemented at <anonymous> (/home/fred/repos/Server-Start/server-page/node_modules/@builder.io/qwik/optimizer.mjs:2721:18) at processTicksAndRejections (:12:39) error: script "build.client" exited with code 1 error: script "build" exited with code 1

same issue

devdumpling commented 1 month ago

I get the same warnings on a fresh bun create qwik@latest and bun start