denoland / deno

A modern runtime for JavaScript and TypeScript.
https://deno.com
MIT License
94.53k stars 5.25k forks source link

Support Qwik City (dev server) #20612

Closed birkskyum closed 2 weeks ago

birkskyum commented 1 year ago

Qwik - Qwik City - GitHub

Platform

Darwin 22.6.0 arm64 arm

Version

deno 1.37.0

Repro

Expected

Dev server start

Actual

➜ deno task dev
Warning Currently only basic package.json `scripts` are supported. Programs like `rimraf` or `cross-env` will not work correctly. This will be fixed in an upcoming release.
Task 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'
Require stack:
- /Users/admin/repos/qwik-test/qwik-app/node_modules/.deno/sharp@0.32.6/node_modules/sharp/lib/sharp.js
- /Users/admin/repos/qwik-test/qwik-app/node_modules/.deno/sharp@0.32.6/node_modules/sharp/lib/constructor.js
- /Users/admin/repos/qwik-test/qwik-app/node_modules/.deno/sharp@0.32.6/node_modules/sharp/lib/index.js
- /Users/admin/repos/qwik-test/qwik-app/node_modules/.deno/imagetools-core@4.0.5/node_modules/sharp/lib/index.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 Object.<anonymous> (file:///Users/admin/repos/qwik-test/qwik-app/node_modules/.deno/sharp@0.32.6/node_modules/sharp/lib/sharp.js:37:9)
    at Object.<anonymous> (file:///Users/admin/repos/qwik-test/qwik-app/node_modules/.deno/sharp@0.32.6/node_modules/sharp/lib/sharp.js:40:4)
    at Module._compile (node:module:733:34)
    at Object.Module._extensions..js (node:module:747:10)
    at Module.load (node:module:658:32)
    at Function.Module._load (node:module:539:12)
    at Module.require (node:module:677:19)
    at require (node:module:791:16)
    at Object.<anonymous> (file:///Users/admin/repos/qwik-test/qwik-app/node_modules/.deno/sharp@0.32.6/node_modules/sharp/lib/constructor.js:11:1)
    at Object.<anonymous> (file:///Users/admin/repos/qwik-test/qwik-app/node_modules/.deno/sharp@0.32.6/node_modules/sharp/lib/constructor.js:441:4)

Related to:

birkskyum commented 10 months ago

Now we wait for Qwik 1.3 to come out (should be soon), and re-assess the status again

birkskyum commented 10 months ago

Alright, this is the new situation with qwik 1.3

➜ deno task dev
Task dev vite --mode ssr
The CJS build of Vite's Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.
error when starting dev server:
Error: Platform not supported
    at loadPlatformBinding (file:///Users/admin/repos/qwik-app/node_modules/.deno/@builder.io+qwik@1.3.0/node_modules/@builder.io/qwik/optimizer.cjs:1367:11)
    at createOptimizer (file:///Users/admin/repos/qwik-app/node_modules/.deno/@builder.io+qwik@1.3.0/node_modules/@builder.io/qwik/optimizer.cjs:1396:93)
    at async Object.init2 [as init] (file:///Users/admin/repos/qwik-app/node_modules/.deno/@builder.io+qwik@1.3.0/node_modules/@builder.io/qwik/optimizer.cjs:1760:49)
    at async config (file:///Users/admin/repos/qwik-app/node_modules/.deno/@builder.io+qwik@1.3.0/node_modules/@builder.io/qwik/optimizer.cjs:3163:9)
    at async runConfigHook (file:///Users/admin/repos/qwik-app/node_modules/.deno/vite@4.4.7/node_modules/vite/dist/node/chunks/dep-3b8eb186.js:66218:25)
    at async resolveConfig (file:///Users/admin/repos/qwik-app/node_modules/.deno/vite@4.4.7/node_modules/vite/dist/node/chunks/dep-3b8eb186.js:65661:14)
    at async _createServer (file:///Users/admin/repos/qwik-app/node_modules/.deno/vite@4.4.7/node_modules/vite/dist/node/chunks/dep-3b8eb186.js:64905:20)
    at async CAC.<anonymous> (file:///Users/admin/repos/qwik-app/node_modules/.deno/vite@4.4.7/node_modules/vite/dist/node/cli.js:743:24)
birkskyum commented 8 months ago

Just tried with latest qwik (1.4.1), and things are working in dev mode! It's a small thing, but I get all these deprecation warnings though:

➜ deno task dev                    
Task dev vite --mode ssr
(!) Could not auto-determine entry point from rollupOptions or html files and there are no explicit optimizeDeps.include patterns. Skipping dependency pre-bundling.

  VITE v5.0.12  ready in 1479 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h + enter to show help
warning: Use of deprecated "Deno.stdin.rid" API. This API will be removed in Deno 2.

hint: Use `Deno.stdin` instance methods instead.

  ❗️ Expect significant performance loss in development.
  ❗️ Disabling the browser's cache results in waterfall requests.
warning: Use of deprecated "Deno.TcpConn.rid" API. This API will be removed in Deno 2.

Stack trace:
  at ext:deno_http/00_serve.js:455:24

hint: Use `Deno.TcpConn` instance methods instead.
hint: It appears this API is used by a remote dependency. Try upgrading to the latest version of that dependency.

warning: Use of deprecated "Deno.TcpConn.rid" API. This API will be removed in Deno 2.

hint: Use `Deno.TcpConn` instance methods instead.

warning: Use of deprecated "Deno.TcpConn.rid" API. This API will be removed in Deno 2.

hint: Use `Deno.TcpConn` instance methods instead.

warning: Use of deprecated "Deno.TcpConn.rid" API. This API will be removed in Deno 2.

hint: Use `Deno.TcpConn` instance methods instead.

warning: Use of deprecated "Deno.FsFile.rid" API. This API will be removed in Deno 2.

Stack trace:
  at ext:deno_node/_fs/_fs_open.ts:78:96

hint: Use `Deno.FsFile` methods directly instead.
hint: It appears this API is used by a remote dependency. Try upgrading to the latest version of that dependency.
birkskyum commented 8 months ago

The deno task build gives this error:

npm run build.types
npm run build.client
npm run lint

> build.types
> tsc --incremental --noEmit

> build.client
> vite build

sh: vite: command not found
Warning: Not implemented: ChildProcess.prototype.disconnect
bartlomieju commented 8 months ago

CC @littledivy could you take a look at that? We should now support disconnect event in ChildProcess.

birkskyum commented 7 months ago

Alright, so now the deno task build returns just (no disconnect warning):

> build.client
> vite build

sh: vite: command not found
bartlomieju commented 7 months ago

This is most likely caused by the fact that we don't set up proper entries in node_modules/.bin/ directory.

birkskyum commented 7 months ago

@bartlomieju , it would probably solve a multiple issues (at least remix as well)

birkskyum commented 5 months ago

Related

birkskyum commented 4 months ago

@bartlomieju I saw the new deno video: https://youtu.be/1IzcI-91iQM?feature=shared&t=92 , and i think it has some incorrect information on qwik support.

Screenshot 2024-05-10 at 15 41 02

I can't make Qwik City run with Deno 1.43.2 like it says it should be able to

Trying with qwik 1.3.0


$ deno run -A npm:create-qwik@1.3.0
$ pnpm i
$ DENO_FUTURE=1 deno task dev

Task dev vite --mode ssr
The CJS build of Vite's Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.
error when starting dev server:
Error: Platform not supported
    at loadPlatformBinding (file:///Users/admin/repos/deno-kitchensink/qwik-app/node_modules/.deno/@builder.io+qwik@1.5.4/node_modules/@builder.io/qwik/optimizer.cjs:1410:11)
    at createOptimizer (file:///Users/admin/repos/deno-kitchensink/qwik-app/node_modules/.deno/@builder.io+qwik@1.5.4/node_modules/@builder.io/qwik/optimizer.cjs:1439:93)
    at async Object.init2 [as init] (file:///Users/admin/repos/deno-kitchensink/qwik-app/node_modules/.deno/@builder.io+qwik@1.5.4/node_modules/@builder.io/qwik/optimizer.cjs:1812:49)
    at async config (file:///Users/admin/repos/deno-kitchensink/qwik-app/node_modules/.deno/@builder.io+qwik@1.5.4/node_modules/@builder.io/qwik/optimizer.cjs:3218:9)
    at async runConfigHook (file:///Users/admin/repos/deno-kitchensink/qwik-app/node_modules/.deno/vite@5.2.10/node_modules/vite/dist/node/chunks/dep-DkOS1hkm.js:68750:25)
    at async resolveConfig (file:///Users/admin/repos/deno-kitchensink/qwik-app/node_modules/.deno/vite@5.2.10/node_modules/vite/dist/node/chunks/dep-DkOS1hkm.js:68198:14)
    at async _createServer (file:///Users/admin/repos/deno-kitchensink/qwik-app/node_modules/.deno/vite@5.2.10/node_modules/vite/dist/node/chunks/dep-DkOS1hkm.js:64702:20)
    at async CAC.<anonymous> (file:///Users/admin/repos/deno-kitchensink/qwik-app/node_modules/.deno/vite@5.2.10/node_modules/vite/dist/node/cli.js:762:24)

Trying latest qwik 1.5.4


$ deno run -A npm:create-qwik@1.5.4
$ pnpm i
$ DENO_FUTURE=1 deno task dev ( or just `deno task dev`)

Task dev vite --mode ssr
failed to load config from /Users/admin/repos/deno-kitchensink/qwik-app2/vite.config.ts
error when starting dev server:
SyntaxError: The requested module 'node:http2' does not provide an export named 'Http2ServerRequest' at file:///Users/admin/repos/deno-kitchensink/qwik-app2/node_modules/@builder.io/qwik-city/vite/index.mjs:25672:10
    at async loadConfigFromBundledFile (file:///Users/admin/repos/deno-kitchensink/qwik-app2/node_modules/vite/dist/node/chunks/dep-cNe07EU9.js:68705:21)
    at async loadConfigFromFile (file:///Users/admin/repos/deno-kitchensink/qwik-app2/node_modules/vite/dist/node/chunks/dep-cNe07EU9.js:68558:28)
    at async resolveConfig (file:///Users/admin/repos/deno-kitchensink/qwik-app2/node_modules/vite/dist/node/chunks/dep-cNe07EU9.js:68161:28)
    at async _createServer (file:///Users/admin/repos/deno-kitchensink/qwik-app2/node_modules/vite/dist/node/chunks/dep-cNe07EU9.js:64686:20)
    at async CAC.<anonymous> (file:///Users/admin/repos/deno-kitchensink/qwik-app2/node_modules/vite/dist/node/cli.js:762:24)
bartlomieju commented 4 months ago

Ugh, I'm not really sure. I'm gonna ping @littledivy who has been running tests for Qwik for the past months. Maybe we don't work any more with a newer version?

birkskyum commented 4 months ago

maybe, it's broken in 1.44 at least

littledivy commented 4 months ago

hmm yeah its errors with:

The requested module 'node:http2' does not provide an export named 'Http2ServerRequest'
birkskyum commented 3 months ago