2.4 KiB
2.4 KiB
description
| description |
|---|
| Every repo moved from Deno to Node + Vite+ in Oct 2026 because Cloudflare bought Deno; nothing goes back to Deno |
On 2026-10-12 the user moved every project from Deno to Node.js + Vite+
(vp). Cloudflare bought Deno on 2026-10-09; the runtime gets roughly 12
months of maintenance and Deno Deploy shuts down around April 2027. None of the
repos used Deploy or KV, so the move is about the toolchain, not hosting.
Do not reintroduce deno.json, deno.lock, Deno.* APIs, jsr: or npm:
specifiers, mod.ts entries, or deno task anywhere, docs and scripts
included.
Order the migration followed
- The custom Deno lint plugins were ported to npm first, as
@cunarist/eslint-plugin-explicit-types,-import-check, and-lit.cunarist/eslint-plugin-explicit-typesis the template every other repo copies (config shape,scripts/project-lint.ts, AGENTS.md, notes). - Then
commons/bot-agents(six repos use it as an action), then the apps: home, eximium, stockvibe, brain, memona, memona-home. - deno-practice, interview-practice, web-landing, and vemium were left out
(archivable). Old
cunarist/deno-*repos are archived one at a time, and only after theireslint-plugin-*replacement is published to npm.
What "migrated" means
- Same behavior. A migration PR changes tooling, not features.
- Lint coverage is at least what Deno enforced: lint-parity-never-shrinks.
- Only three config files and only
.ts: toolchain-node-vite-plus, ts-only-files-and-imports. - Deno.test suites became Vitest: tests-layout-vitest.
The custom plugins' Deno names map like this:
| Deno | npm |
|---|---|
jsr:@cunarist/deno-lint-plugin-explicit-types |
@cunarist/eslint-plugin-explicit-types |
jsr:@cunarist/deno-import-check (./lint) |
@cunarist/eslint-plugin-import-check |
jsr:@cunarist/deno-lint-plugin-lit |
@cunarist/eslint-plugin-lit |
scripts/deno-lint-plugin.ts (per app) |
scripts/project-lint.ts (per app) |
Until those packages are on npm, a repo that depends on them fails npm ci in
CI; that is expected and stated in the PR, never worked around by committing
tarballs or file: dependencies.