From bfe5330611ca9b00dc6d1670390989d9617bc45e Mon Sep 17 00:00:00 2001 From: Brendan Irvine-Broque Date: Thu, 29 Oct 2026 10:27:19 -0700 Subject: [PATCH 1/8] feat(create-cloudflare): adopt Vite+ in bundled Worker starters --- .changeset/cf-remote-templates.md | 7 ++++ .changeset/viteplus-project-commands.md | 7 ++++ .changeset/viteplus-worker-templates.md | 7 ++++ packages/autoconfig/src/details/index.ts | 30 ++++++++++++-- .../tests/details/vite-plus-commands.test.ts | 35 ++++++++++++++++ .../e2e/helpers/workers-helpers.ts | 7 ++-- .../e2e/tests/workers/workers.test.ts | 11 ++++- .../src/__tests__/templates.test.ts | 40 +++++++++++++++++++ packages/create-cloudflare/src/cli.ts | 3 ++ .../src/helpers/__tests__/vite-plus.test.ts | 38 ++++++++++++++++++ .../src/helpers/vite-plus.ts | 21 ++++++++++ packages/create-cloudflare/src/templates.ts | 10 +++-- .../templates/common/js/.prettierrc | 6 --- .../templates/common/js/package.json | 18 ++++++++- .../templates/common/js/pnpm-workspace.yaml | 6 +++ .../templates/common/js/vite.config.ts | 6 +++ .../templates/common/ts/.prettierrc | 6 --- .../templates/common/ts/package.json | 18 ++++++++- .../templates/common/ts/pnpm-workspace.yaml | 6 +++ .../templates/common/ts/tsconfig.json | 2 +- .../templates/common/ts/vite.config.ts | 6 +++ .../js/.prettierrc | 6 --- .../js/package.json | 18 ++++++++- .../js/pnpm-workspace.yaml | 6 +++ .../js/vite.config.ts | 6 +++ .../ts/.prettierrc | 6 --- .../ts/package.json | 18 ++++++++- .../ts/pnpm-workspace.yaml | 6 +++ .../ts/tsconfig.json | 2 +- .../ts/vite.config.ts | 6 +++ .../hello-world-durable-object/js/.prettierrc | 6 --- .../js/package.json | 18 ++++++++- .../js/pnpm-workspace.yaml | 6 +++ .../js/vite.config.ts | 6 +++ .../hello-world-durable-object/ts/.prettierrc | 6 --- .../ts/package.json | 18 ++++++++- .../ts/pnpm-workspace.yaml | 6 +++ .../ts/tsconfig.json | 2 +- .../ts/vite.config.ts | 6 +++ .../hello-world-with-assets/js/.prettierrc | 6 --- .../hello-world-with-assets/js/package.json | 20 ++++++++-- .../js/pnpm-workspace.yaml | 6 +++ .../js/test/index.spec.js | 2 +- .../hello-world-with-assets/js/vite.config.ts | 6 +++ .../hello-world-with-assets/ts/.prettierrc | 6 --- .../hello-world-with-assets/ts/package.json | 24 ++++++++--- .../ts/pnpm-workspace.yaml | 6 +++ .../ts/test/index.spec.ts | 2 +- .../hello-world-with-assets/ts/vite.config.ts | 6 +++ .../ts/vitest.config.mts | 2 +- .../hello-world-workflows/js/package.json | 18 ++++++++- .../js/pnpm-workspace.yaml | 6 +++ .../hello-world-workflows/js/vite.config.ts | 6 +++ .../hello-world-workflows/ts/package.json | 18 ++++++++- .../ts/pnpm-workspace.yaml | 6 +++ .../hello-world-workflows/ts/tsconfig.json | 2 +- .../hello-world-workflows/ts/vite.config.ts | 6 +++ .../templates/hello-world/js/.prettierrc | 6 --- .../templates/hello-world/js/package.json | 20 ++++++++-- .../hello-world/js/pnpm-workspace.yaml | 6 +++ .../hello-world/js/test/index.spec.js | 2 +- .../templates/hello-world/js/vite.config.ts | 13 ++++++ .../templates/hello-world/ts/.prettierrc | 6 --- .../templates/hello-world/ts/package.json | 22 ++++++++-- .../hello-world/ts/pnpm-workspace.yaml | 6 +++ .../hello-world/ts/test/index.spec.ts | 2 +- .../templates/hello-world/ts/vite.config.ts | 13 ++++++ .../hello-world/ts/vitest.config.mts | 2 +- .../templates/openapi/ts/package.json | 18 ++++++++- .../templates/openapi/ts/pnpm-workspace.yaml | 6 +++ .../templates/openapi/ts/vite.config.ts | 6 +++ .../templates/queues/js/.prettierrc | 6 --- .../templates/queues/js/package.json | 18 ++++++++- .../templates/queues/js/pnpm-workspace.yaml | 6 +++ .../templates/queues/js/vite.config.ts | 6 +++ .../templates/queues/ts/.prettierrc | 6 --- .../templates/queues/ts/package.json | 18 ++++++++- .../templates/queues/ts/pnpm-workspace.yaml | 6 +++ .../templates/queues/ts/tsconfig.json | 2 +- .../templates/queues/ts/vite.config.ts | 6 +++ .../templates/scheduled/js/.prettierrc | 6 --- .../templates/scheduled/js/package.json | 18 ++++++++- .../scheduled/js/pnpm-workspace.yaml | 6 +++ .../templates/scheduled/js/vite.config.ts | 6 +++ .../templates/scheduled/ts/.prettierrc | 6 --- .../templates/scheduled/ts/package.json | 20 ++++++++-- .../scheduled/ts/pnpm-workspace.yaml | 6 +++ .../templates/scheduled/ts/tsconfig.json | 2 +- .../templates/scheduled/ts/vite.config.ts | 6 +++ 89 files changed, 714 insertions(+), 150 deletions(-) create mode 100644 .changeset/cf-remote-templates.md create mode 100644 .changeset/viteplus-project-commands.md create mode 100644 .changeset/viteplus-worker-templates.md create mode 100644 packages/autoconfig/tests/details/vite-plus-commands.test.ts create mode 100644 packages/create-cloudflare/src/helpers/__tests__/vite-plus.test.ts create mode 100644 packages/create-cloudflare/src/helpers/vite-plus.ts delete mode 100644 packages/create-cloudflare/templates/common/js/.prettierrc create mode 100644 packages/create-cloudflare/templates/common/js/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/common/js/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/common/ts/.prettierrc create mode 100644 packages/create-cloudflare/templates/common/ts/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/common/ts/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.prettierrc create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.prettierrc create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/js/.prettierrc create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/js/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/ts/.prettierrc create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/ts/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/js/.prettierrc create mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/js/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/ts/.prettierrc create mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/ts/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts create mode 100644 packages/create-cloudflare/templates/hello-world-workflows/js/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts create mode 100644 packages/create-cloudflare/templates/hello-world-workflows/ts/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/hello-world/js/.prettierrc create mode 100644 packages/create-cloudflare/templates/hello-world/js/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/hello-world/js/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/hello-world/ts/.prettierrc create mode 100644 packages/create-cloudflare/templates/hello-world/ts/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/hello-world/ts/vite.config.ts create mode 100644 packages/create-cloudflare/templates/openapi/ts/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/openapi/ts/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/queues/js/.prettierrc create mode 100644 packages/create-cloudflare/templates/queues/js/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/queues/js/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/queues/ts/.prettierrc create mode 100644 packages/create-cloudflare/templates/queues/ts/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/queues/ts/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/scheduled/js/.prettierrc create mode 100644 packages/create-cloudflare/templates/scheduled/js/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/scheduled/js/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/scheduled/ts/.prettierrc create mode 100644 packages/create-cloudflare/templates/scheduled/ts/pnpm-workspace.yaml create mode 100644 packages/create-cloudflare/templates/scheduled/ts/vite.config.ts diff --git a/.changeset/cf-remote-templates.md b/.changeset/cf-remote-templates.md new file mode 100644 index 00000000000..02162f58da2 --- /dev/null +++ b/.changeset/cf-remote-templates.md @@ -0,0 +1,7 @@ +--- +"create-cloudflare": patch +--- + +Accept remote Workers templates configured with cloudflare.config.ts + +Allow typed-configuration templates through validation so the existing cf installation, type-generation, and deployment paths can handle them. diff --git a/.changeset/viteplus-project-commands.md b/.changeset/viteplus-project-commands.md new file mode 100644 index 00000000000..d6eebda3bd9 --- /dev/null +++ b/.changeset/viteplus-project-commands.md @@ -0,0 +1,7 @@ +--- +"@cloudflare/autoconfig": patch +--- + +Run the project-local Vite+ executable for Vite+ projects + +Use `vp dev` and `vp build` when Vite+ is declared. Its Vite alias does not expose a `vite` executable, so invoking `vite` can fail with pnpm or cause npm to fetch a separate Vite. Preserve framework-owned commands and custom scripts. diff --git a/.changeset/viteplus-worker-templates.md b/.changeset/viteplus-worker-templates.md new file mode 100644 index 00000000000..1d46fdc61eb --- /dev/null +++ b/.changeset/viteplus-worker-templates.md @@ -0,0 +1,7 @@ +--- +"create-cloudflare": minor +--- + +Use Vite+ for checks, formatting, and tests in bundled JavaScript and TypeScript Worker starters + +Keep framework-owned scaffolding and deployment commands unchanged. Include standalone package-manager overrides so copied starters share the Vite+ toolchain. diff --git a/packages/autoconfig/src/details/index.ts b/packages/autoconfig/src/details/index.ts index 2e9b4947745..00e0b8f0b77 100644 --- a/packages/autoconfig/src/details/index.ts +++ b/packages/autoconfig/src/details/index.ts @@ -209,10 +209,18 @@ export async function getDetailsForAutoConfig({ packageManager, devCommand: useStaticAssets ? undefined - : getProjectCommand(detectedFramework.devCommand, packageManager), + : getProjectCommand( + detectedFramework.devCommand, + packageManager, + packageJson + ), buildCommand: useStaticAssets ? undefined - : getProjectCommand(detectedFramework.buildCommand, packageManager), + : getProjectCommand( + detectedFramework.buildCommand, + packageManager, + packageJson + ), env: framework.env, workerName: getWorkerName(packageJson?.name, projectPath), }; @@ -287,15 +295,29 @@ export async function getDetailsForAutoConfig({ * @param packageManager The package manager to use for command prefixes * @returns A runnable project command if detected, undefined otherwise */ -function getProjectCommand( +export function getProjectCommand( command: string | undefined, - packageManager: PackageManager + packageManager: PackageManager, + packageJson?: PackageJSON ): string | undefined { if (!command) { return undefined; } const { type, dlx, npx } = packageManager; + if ( + packageJson?.dependencies?.["vite-plus"] || + packageJson?.devDependencies?.["vite-plus"] + ) { + if ( + ["vite", "vite dev", `${npx} vite`, `${npx} vite dev`].includes(command) + ) { + return `${npx} vp dev`; + } + if (command === "vite build" || command === `${npx} vite build`) { + return `${npx} vp build`; + } + } for (const packageManagerCommandPrefix of [type, dlx.join(" "), npx]) { if (command.startsWith(packageManagerCommandPrefix)) { diff --git a/packages/autoconfig/tests/details/vite-plus-commands.test.ts b/packages/autoconfig/tests/details/vite-plus-commands.test.ts new file mode 100644 index 00000000000..df6c7aa4be5 --- /dev/null +++ b/packages/autoconfig/tests/details/vite-plus-commands.test.ts @@ -0,0 +1,35 @@ +import { NpmPackageManager } from "@cloudflare/workers-utils"; +import { describe, test } from "vitest"; +import { getProjectCommand } from "../../src/details"; + +describe("Vite+ commands", () => { + test.for(["npx", "pnpm", "yarn", "bunx"])( + "uses the local toolchain through %s", + (npx, { expect }) => { + const manager = { ...NpmPackageManager, npx }; + const pkg = { devDependencies: { "vite-plus": "1.4.0" } }; + expect(getProjectCommand("vite", manager, pkg)).toBe(`${npx} vp dev`); + expect(getProjectCommand("vite dev", manager, pkg)).toBe(`${npx} vp dev`); + expect(getProjectCommand("vite build", manager, pkg)).toBe( + `${npx} vp build` + ); + expect(getProjectCommand(`${npx} vite build`, manager, pkg)).toBe( + `${npx} vp build` + ); + } + ); + test("preserves framework scripts and projects without Vite+", ({ + expect, + }) => { + const pkg = { dependencies: { "vite-plus": "1.4.0" } }; + expect(getProjectCommand("astro build", NpmPackageManager, pkg)).toBe( + "npx astro build" + ); + expect(getProjectCommand("npm run build", NpmPackageManager, pkg)).toBe( + "npm run build" + ); + expect(getProjectCommand("vite build", NpmPackageManager, {})).toBe( + "npx vite build" + ); + }); +}); diff --git a/packages/create-cloudflare/e2e/helpers/workers-helpers.ts b/packages/create-cloudflare/e2e/helpers/workers-helpers.ts index c100cf5fbc5..daeb6d4aa65 100644 --- a/packages/create-cloudflare/e2e/helpers/workers-helpers.ts +++ b/packages/create-cloudflare/e2e/helpers/workers-helpers.ts @@ -122,12 +122,13 @@ export async function verifyLocalDev( } } -export async function verifyTestScript( +export async function verifyProjectScript( projectPath: string, - logStream: Writable + logStream: Writable, + script: "test" | "check" ) { const proc = spawnWithLogging( - [pm, "run", "test"], + [pm, "run", script], { cwd: projectPath, env: { diff --git a/packages/create-cloudflare/e2e/tests/workers/workers.test.ts b/packages/create-cloudflare/e2e/tests/workers/workers.test.ts index 7a54a245c4f..8c60794d389 100644 --- a/packages/create-cloudflare/e2e/tests/workers/workers.test.ts +++ b/packages/create-cloudflare/e2e/tests/workers/workers.test.ts @@ -15,7 +15,7 @@ import { runC3ForWorkerTest, verifyDeployment, verifyLocalDev, - verifyTestScript, + verifyProjectScript, } from "../../helpers/workers-helpers"; import { getWorkerTests } from "./test-config"; import type { RunnerTestSuite } from "vitest"; @@ -79,6 +79,13 @@ describe ); } + const packageJson = readJSON(pkgJsonPath) as { + devDependencies?: Record; + }; + if (packageJson.devDependencies?.["vite-plus"]) { + await verifyProjectScript(project.path, logStream, "check"); + } + const { verifyDeploy, verifyTest } = testConfig; if (verifyDeploy) { if (deployedUrl) { @@ -94,7 +101,7 @@ describe } if (verifyTest) { - await verifyTestScript(project.path, logStream); + await verifyProjectScript(project.path, logStream, "test"); } } finally { await deleteWorker(project.name); diff --git a/packages/create-cloudflare/src/__tests__/templates.test.ts b/packages/create-cloudflare/src/__tests__/templates.test.ts index ce72c8b2486..30bb7eb6294 100644 --- a/packages/create-cloudflare/src/__tests__/templates.test.ts +++ b/packages/create-cloudflare/src/__tests__/templates.test.ts @@ -15,6 +15,7 @@ import { getOtherTemplateMap, updatePackageName, writeAgentsMd, + validateTemplateSrcDirectory, } from "../templates"; import type { MultiPlatformTemplateConfig, TemplateConfig } from "../templates"; import type { C3Args, C3Context } from "types"; @@ -552,3 +553,42 @@ describe("writeAgentsMd", () => { expect(writeFileMock).not.toHaveBeenCalled(); }); }); + +describe("validateTemplateSrcDirectory", () => { + test.for([ + "cloudflare.config.ts", + "wrangler.toml", + "wrangler.json", + "wrangler.jsonc", + ])("accepts a Worker template with %s", (filename, { expect }) => { + vi.mocked(existsSync).mockImplementation( + (path) => + String(path).endsWith(filename) || String(path).endsWith("package.json") + ); + expect(() => + validateTemplateSrcDirectory("/template", { + platform: "workers", + } as TemplateConfig) + ).not.toThrow(); + }); + test("rejects a Worker template without configuration", ({ expect }) => { + vi.mocked(existsSync).mockImplementation((path) => + String(path).endsWith("package.json") + ); + expect(() => + validateTemplateSrcDirectory("/template", { + platform: "workers", + } as TemplateConfig) + ).toThrow("cloudflare.config.ts"); + }); + test("still requires a manifest for a cf template", ({ expect }) => { + vi.mocked(existsSync).mockImplementation((path) => + String(path).endsWith("cloudflare.config.ts") + ); + expect(() => + validateTemplateSrcDirectory("/template", { + platform: "workers", + } as TemplateConfig) + ).toThrow("package.json"); + }); +}); diff --git a/packages/create-cloudflare/src/cli.ts b/packages/create-cloudflare/src/cli.ts index 56e962828b4..fdbca81433a 100644 --- a/packages/create-cloudflare/src/cli.ts +++ b/packages/create-cloudflare/src/cli.ts @@ -24,6 +24,7 @@ import { isIgnoredBuildsError, writePnpmBuildApprovals, } from "helpers/pnpmBuildApprovals"; +import { formatVitePlusProject } from "helpers/vite-plus"; import { version } from "../package.json"; import { usesCfCli } from "./cf/config"; import { maybeOpenBrowser, offerToDeploy, runDeploy } from "./deploy"; @@ -187,6 +188,8 @@ const configure = async (ctx: C3Context) => { await addTypes(ctx); } + await formatVitePlusProject(ctx); + // Autoconfig doesn't mess with version control, so C3 runs this after autoconfig await offerGit(ctx); await gitCommit(ctx); diff --git a/packages/create-cloudflare/src/helpers/__tests__/vite-plus.test.ts b/packages/create-cloudflare/src/helpers/__tests__/vite-plus.test.ts new file mode 100644 index 00000000000..4db0cf1e239 --- /dev/null +++ b/packages/create-cloudflare/src/helpers/__tests__/vite-plus.test.ts @@ -0,0 +1,38 @@ +import { runCommand } from "@cloudflare/cli-shared-helpers/command"; +import { readJSON } from "helpers/files"; +import { formatVitePlusProject } from "helpers/vite-plus"; +import { beforeEach, describe, test, vi } from "vitest"; +import { mockPackageManager } from "./mocks"; +import type { C3Context } from "types"; + +vi.mock("@cloudflare/cli-shared-helpers/command"); +vi.mock("helpers/files"); +vi.mock("which-pm-runs"); +const ctx = { project: { path: "/project" } } as C3Context; + +beforeEach(() => vi.resetAllMocks()); +describe("formatVitePlusProject", () => { + test.for(["npm", "pnpm", "yarn", "bun"])( + "formats generated files with %s", + async (manager, { expect }) => { + mockPackageManager(manager, "12.0.0"); + vi.mocked(readJSON).mockReturnValue({ + devDependencies: { "vite-plus": "1.4.0" }, + }); + await formatVitePlusProject(ctx); + expect(runCommand).toHaveBeenCalledWith( + [ + manager === "npm" ? "npx" : manager === "bun" ? "bunx" : manager, + "vp", + "fmt", + ], + expect.objectContaining({ cwd: "/project", silent: true }) + ); + } + ); + test("does not change projects without Vite+", async ({ expect }) => { + vi.mocked(readJSON).mockReturnValue({}); + await formatVitePlusProject(ctx); + expect(runCommand).not.toHaveBeenCalled(); + }); +}); diff --git a/packages/create-cloudflare/src/helpers/vite-plus.ts b/packages/create-cloudflare/src/helpers/vite-plus.ts new file mode 100644 index 00000000000..8fe22294322 --- /dev/null +++ b/packages/create-cloudflare/src/helpers/vite-plus.ts @@ -0,0 +1,21 @@ +import { join } from "node:path"; +import { runCommand } from "@cloudflare/cli-shared-helpers/command"; +import { readJSON } from "./files"; +import { detectPackageManager } from "./packageManagers"; +import type { C3Context } from "types"; + +export async function formatVitePlusProject(ctx: C3Context): Promise { + const pkg = readJSON(join(ctx.project.path, "package.json")) as { + devDependencies?: Record; + }; + if (!pkg.devDependencies?.["vite-plus"]) { + return; + } + const { npx } = detectPackageManager(); + await runCommand([npx, "vp", "fmt"], { + cwd: ctx.project.path, + silent: true, + startText: "Formatting the generated project", + doneText: "Project formatted", + }); +} diff --git a/packages/create-cloudflare/src/templates.ts b/packages/create-cloudflare/src/templates.ts index 495a30de219..8d0dbe23bca 100644 --- a/packages/create-cloudflare/src/templates.ts +++ b/packages/create-cloudflare/src/templates.ts @@ -932,7 +932,10 @@ const validateTemplate = (path: string, config: TemplateConfig) => { } }; -const validateTemplateSrcDirectory = (path: string, config: TemplateConfig) => { +export const validateTemplateSrcDirectory = ( + path: string, + config: TemplateConfig +) => { if (config.platform === "workers") { const wranglerTomlPath = resolve(path, "wrangler.toml"); const wranglerJsonPath = resolve(path, "wrangler.json"); @@ -940,10 +943,11 @@ const validateTemplateSrcDirectory = (path: string, config: TemplateConfig) => { if ( !existsSync(wranglerTomlPath) && !existsSync(wranglerJsonPath) && - !existsSync(wranglerJsoncPath) + !existsSync(wranglerJsoncPath) && + !existsSync(resolve(path, "cloudflare.config.ts")) ) { throw new Error( - `create-cloudflare templates must contain a "wrangler.toml" or "wrangler.json(c)" file.` + `create-cloudflare templates must contain a "cloudflare.config.ts", "wrangler.toml", or "wrangler.json(c)" file.` ); } } diff --git a/packages/create-cloudflare/templates/common/js/.prettierrc b/packages/create-cloudflare/templates/common/js/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/common/js/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/common/js/package.json b/packages/create-cloudflare/templates/common/js/package.json index 2d24efb6cc7..0ae1bdcce8b 100644 --- a/packages/create-cloudflare/templates/common/js/package.json +++ b/packages/create-cloudflare/templates/common/js/package.json @@ -5,10 +5,24 @@ "scripts": { "deploy": "wrangler deploy", "dev": "wrangler dev", - "start": "wrangler dev" + "start": "wrangler dev", + "format": "vp fmt", + "check": "vp check" }, "devDependencies": { "itty-router": "^3.0.12", - "wrangler": "^3.101.0" + "wrangler": "^3.101.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/common/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/common/js/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/common/js/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/common/js/vite.config.ts b/packages/create-cloudflare/templates/common/js/vite.config.ts new file mode 100644 index 00000000000..94ac9a0319e --- /dev/null +++ b/packages/create-cloudflare/templates/common/js/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/common/ts/.prettierrc b/packages/create-cloudflare/templates/common/ts/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/common/ts/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/common/ts/package.json b/packages/create-cloudflare/templates/common/ts/package.json index 7c8fff9b3ca..76a18b433cc 100644 --- a/packages/create-cloudflare/templates/common/ts/package.json +++ b/packages/create-cloudflare/templates/common/ts/package.json @@ -6,11 +6,25 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "cf-typegen": "wrangler types" + "cf-typegen": "wrangler types", + "format": "vp fmt", + "check": "wrangler types && vp check" }, "devDependencies": { "itty-router": "^3.0.12", "typescript": "^5.5.2", - "wrangler": "^3.101.0" + "wrangler": "^3.101.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/common/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/common/ts/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/common/ts/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/common/ts/tsconfig.json b/packages/create-cloudflare/templates/common/ts/tsconfig.json index 93d7417620b..4aabcb12367 100644 --- a/packages/create-cloudflare/templates/common/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/common/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "node", + "moduleResolution": "Bundler", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/common/ts/vite.config.ts b/packages/create-cloudflare/templates/common/ts/vite.config.ts new file mode 100644 index 00000000000..7799278b1be --- /dev/null +++ b/packages/create-cloudflare/templates/common/ts/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.prettierrc b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json index 61822a836fc..98b218f6643 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json @@ -5,9 +5,23 @@ "scripts": { "deploy": "wrangler deploy", "dev": "wrangler dev", - "start": "wrangler dev" + "start": "wrangler dev", + "format": "vp fmt", + "check": "vp check" }, "devDependencies": { - "wrangler": "^3.101.0" + "wrangler": "^3.101.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts new file mode 100644 index 00000000000..94ac9a0319e --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.prettierrc b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json index 0c13d8ba750..d82643491b1 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json @@ -6,10 +6,24 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "cf-typegen": "wrangler types" + "cf-typegen": "wrangler types", + "format": "vp fmt", + "check": "wrangler types && vp check" }, "devDependencies": { "typescript": "^5.5.2", - "wrangler": "^3.101.0" + "wrangler": "^3.101.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/tsconfig.json b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/tsconfig.json index 6841f3f15bf..b6dc5ad59dd 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "node", + "moduleResolution": "Bundler", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts new file mode 100644 index 00000000000..7799278b1be --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/.prettierrc b/packages/create-cloudflare/templates/hello-world-durable-object/js/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object/js/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json b/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json index 61822a836fc..98b218f6643 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json @@ -5,9 +5,23 @@ "scripts": { "deploy": "wrangler deploy", "dev": "wrangler dev", - "start": "wrangler dev" + "start": "wrangler dev", + "format": "vp fmt", + "check": "vp check" }, "devDependencies": { - "wrangler": "^3.101.0" + "wrangler": "^3.101.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-durable-object/js/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object/js/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts new file mode 100644 index 00000000000..94ac9a0319e --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/.prettierrc b/packages/create-cloudflare/templates/hello-world-durable-object/ts/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json b/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json index 0c13d8ba750..d82643491b1 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json @@ -6,10 +6,24 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "cf-typegen": "wrangler types" + "cf-typegen": "wrangler types", + "format": "vp fmt", + "check": "wrangler types && vp check" }, "devDependencies": { "typescript": "^5.5.2", - "wrangler": "^3.101.0" + "wrangler": "^3.101.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-durable-object/ts/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/tsconfig.json b/packages/create-cloudflare/templates/hello-world-durable-object/ts/tsconfig.json index 1d53b5cb5b9..dd6271ebf35 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "node", + "moduleResolution": "Bundler", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts new file mode 100644 index 00000000000..7799278b1be --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/.prettierrc b/packages/create-cloudflare/templates/hello-world-with-assets/js/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json b/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json index f76df697a99..55b733349eb 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json @@ -6,11 +6,25 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "test": "vitest" + "test": "vp test", + "format": "vp fmt", + "check": "vp check" }, "devDependencies": { - "@cloudflare/vitest-plugin": "^1.4.3", + "@cloudflare/vitest-plugin": "^1.4.10", "wrangler": "^4", - "vitest": "~5.0.3" + "vitest": "5.0.5", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-with-assets/js/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/test/index.spec.js b/packages/create-cloudflare/templates/hello-world-with-assets/js/test/index.spec.js index 988410d3439..40718bbd848 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/test/index.spec.js +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/test/index.spec.js @@ -4,7 +4,7 @@ import { waitOnExecutionContext, SELF, } from "cloudflare:test"; -import { describe, it, expect } from "vitest"; +import { describe, it, expect } from "vite-plus/test"; import worker from "../src"; describe("Hello World user worker", () => { diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts new file mode 100644 index 00000000000..94ac9a0319e --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/.prettierrc b/packages/create-cloudflare/templates/hello-world-with-assets/ts/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json b/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json index 36b6216e237..c6f1d8adafe 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json @@ -6,13 +6,27 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "test": "vitest", - "cf-typegen": "wrangler types" + "test": "vp test", + "cf-typegen": "wrangler types", + "format": "vp fmt", + "check": "wrangler types && vp check" }, "devDependencies": { - "@cloudflare/vitest-plugin": "^1.4.3", + "@cloudflare/vitest-plugin": "^1.4.10", "typescript": "^5.5.2", - "vitest": "~5.0.3", - "wrangler": "^4" + "vitest": "5.0.5", + "wrangler": "^4", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-with-assets/ts/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/test/index.spec.ts b/packages/create-cloudflare/templates/hello-world-with-assets/ts/test/index.spec.ts index 5cf47b1b79c..1d20c75c7ce 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/test/index.spec.ts +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/test/index.spec.ts @@ -4,7 +4,7 @@ import { waitOnExecutionContext, SELF, } from "cloudflare:test"; -import { describe, it, expect } from "vitest"; +import { describe, it, expect } from "vite-plus/test"; import worker from "../src"; describe("Hello World user worker", () => { diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts new file mode 100644 index 00000000000..7799278b1be --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/vitest.config.mts b/packages/create-cloudflare/templates/hello-world-with-assets/ts/vitest.config.mts index 195e6c06dd3..8c5d3c38c55 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/vitest.config.mts +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/vitest.config.mts @@ -1,5 +1,5 @@ import { cloudflareTest } from "@cloudflare/vitest-plugin"; -import { defineConfig } from "vitest/config"; +import { defineConfig } from "vite-plus"; export default defineConfig({ plugins: [ diff --git a/packages/create-cloudflare/templates/hello-world-workflows/js/package.json b/packages/create-cloudflare/templates/hello-world-workflows/js/package.json index 0bd8945520b..16ea047865e 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-workflows/js/package.json @@ -5,9 +5,23 @@ "scripts": { "deploy": "wrangler deploy", "start": "wrangler dev", - "dev": "wrangler dev" + "dev": "wrangler dev", + "format": "vp fmt", + "check": "vp check" }, "devDependencies": { - "wrangler": "^4.6.0" + "wrangler": "^4.6.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/hello-world-workflows/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-workflows/js/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-workflows/js/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts new file mode 100644 index 00000000000..94ac9a0319e --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json b/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json index 1e481013cbc..e6f2cc0ac79 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json @@ -6,10 +6,24 @@ "deploy": "wrangler deploy", "start": "wrangler dev", "dev": "wrangler dev", - "cf-typegen": "wrangler types" + "cf-typegen": "wrangler types", + "format": "vp fmt", + "check": "wrangler types && vp check" }, "devDependencies": { "typescript": "^5.0.4", - "wrangler": "^4.6.0" + "wrangler": "^4.6.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-workflows/ts/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-workflows/ts/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/tsconfig.json b/packages/create-cloudflare/templates/hello-world-workflows/ts/tsconfig.json index 1d53b5cb5b9..dd6271ebf35 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/hello-world-workflows/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "node", + "moduleResolution": "Bundler", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts new file mode 100644 index 00000000000..7799278b1be --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/hello-world/js/.prettierrc b/packages/create-cloudflare/templates/hello-world/js/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/hello-world/js/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/hello-world/js/package.json b/packages/create-cloudflare/templates/hello-world/js/package.json index 034aa4ea44a..6c25aef9d32 100644 --- a/packages/create-cloudflare/templates/hello-world/js/package.json +++ b/packages/create-cloudflare/templates/hello-world/js/package.json @@ -6,11 +6,25 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "test": "vitest" + "test": "vp test", + "format": "vp fmt", + "check": "vp check" }, "devDependencies": { - "@cloudflare/vitest-plugin": "^1.4.3", - "vitest": "~5.0.3", + "@cloudflare/vitest-plugin": "^1.4.10", + "vite-plus": "1.4.0", + "vitest": "5.0.5", "wrangler": "^4" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" } } diff --git a/packages/create-cloudflare/templates/hello-world/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world/js/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world/js/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world/js/test/index.spec.js b/packages/create-cloudflare/templates/hello-world/js/test/index.spec.js index 11d4fe1463e..1b7985a7fd0 100644 --- a/packages/create-cloudflare/templates/hello-world/js/test/index.spec.js +++ b/packages/create-cloudflare/templates/hello-world/js/test/index.spec.js @@ -4,7 +4,7 @@ import { waitOnExecutionContext, SELF, } from "cloudflare:test"; -import { describe, it, expect } from "vitest"; +import { describe, it, expect } from "vite-plus/test"; import worker from "../src"; describe("Hello World worker", () => { diff --git a/packages/create-cloudflare/templates/hello-world/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world/js/vite.config.ts new file mode 100644 index 00000000000..fef4f402d24 --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world/js/vite.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { + useTabs: true, + sortPackageJson: false, + ignorePatterns: ["worker-configuration.d.ts"], + }, + lint: { + options: { typeAware: false, typeCheck: false }, + ignorePatterns: ["worker-configuration.d.ts"], + }, +}); diff --git a/packages/create-cloudflare/templates/hello-world/ts/.prettierrc b/packages/create-cloudflare/templates/hello-world/ts/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/hello-world/ts/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/hello-world/ts/package.json b/packages/create-cloudflare/templates/hello-world/ts/package.json index 36b6216e237..8c71e050467 100644 --- a/packages/create-cloudflare/templates/hello-world/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world/ts/package.json @@ -6,13 +6,27 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "test": "vitest", - "cf-typegen": "wrangler types" + "test": "vp test", + "cf-typegen": "wrangler types", + "format": "vp fmt", + "check": "wrangler types && vp check" }, "devDependencies": { - "@cloudflare/vitest-plugin": "^1.4.3", + "@cloudflare/vitest-plugin": "^1.4.10", "typescript": "^5.5.2", - "vitest": "~5.0.3", + "vite-plus": "1.4.0", + "vitest": "5.0.5", "wrangler": "^4" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" } } diff --git a/packages/create-cloudflare/templates/hello-world/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world/ts/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world/ts/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world/ts/test/index.spec.ts b/packages/create-cloudflare/templates/hello-world/ts/test/index.spec.ts index 81abe3d31e8..bf975380413 100644 --- a/packages/create-cloudflare/templates/hello-world/ts/test/index.spec.ts +++ b/packages/create-cloudflare/templates/hello-world/ts/test/index.spec.ts @@ -4,7 +4,7 @@ import { waitOnExecutionContext, SELF, } from "cloudflare:test"; -import { describe, it, expect } from "vitest"; +import { describe, it, expect } from "vite-plus/test"; import worker from "../src/index"; // For now, you'll need to do something like this to get a correctly-typed diff --git a/packages/create-cloudflare/templates/hello-world/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world/ts/vite.config.ts new file mode 100644 index 00000000000..6558e6befe3 --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world/ts/vite.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { + useTabs: true, + sortPackageJson: false, + ignorePatterns: ["worker-configuration.d.ts"], + }, + lint: { + options: { typeAware: true, typeCheck: true }, + ignorePatterns: ["worker-configuration.d.ts"], + }, +}); diff --git a/packages/create-cloudflare/templates/hello-world/ts/vitest.config.mts b/packages/create-cloudflare/templates/hello-world/ts/vitest.config.mts index 195e6c06dd3..8c5d3c38c55 100644 --- a/packages/create-cloudflare/templates/hello-world/ts/vitest.config.mts +++ b/packages/create-cloudflare/templates/hello-world/ts/vitest.config.mts @@ -1,5 +1,5 @@ import { cloudflareTest } from "@cloudflare/vitest-plugin"; -import { defineConfig } from "vitest/config"; +import { defineConfig } from "vite-plus"; export default defineConfig({ plugins: [ diff --git a/packages/create-cloudflare/templates/openapi/ts/package.json b/packages/create-cloudflare/templates/openapi/ts/package.json index b01bc40f8ed..7e4c3f8c6ae 100644 --- a/packages/create-cloudflare/templates/openapi/ts/package.json +++ b/packages/create-cloudflare/templates/openapi/ts/package.json @@ -6,7 +6,9 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "cf-typegen": "wrangler types" + "cf-typegen": "wrangler types", + "format": "vp fmt", + "check": "wrangler types && vp check" }, "dependencies": { "chanfana": "^3.3.0", @@ -16,6 +18,18 @@ "devDependencies": { "@cloudflare/workers-types": "^5.20260706.1", "@types/node": "^25.6.0", - "wrangler": "^4.81.1" + "wrangler": "^4.81.1", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/openapi/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/openapi/ts/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/openapi/ts/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/openapi/ts/vite.config.ts b/packages/create-cloudflare/templates/openapi/ts/vite.config.ts new file mode 100644 index 00000000000..7799278b1be --- /dev/null +++ b/packages/create-cloudflare/templates/openapi/ts/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/queues/js/.prettierrc b/packages/create-cloudflare/templates/queues/js/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/queues/js/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/queues/js/package.json b/packages/create-cloudflare/templates/queues/js/package.json index 61822a836fc..98b218f6643 100644 --- a/packages/create-cloudflare/templates/queues/js/package.json +++ b/packages/create-cloudflare/templates/queues/js/package.json @@ -5,9 +5,23 @@ "scripts": { "deploy": "wrangler deploy", "dev": "wrangler dev", - "start": "wrangler dev" + "start": "wrangler dev", + "format": "vp fmt", + "check": "vp check" }, "devDependencies": { - "wrangler": "^3.101.0" + "wrangler": "^3.101.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/queues/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/queues/js/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/queues/js/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/queues/js/vite.config.ts b/packages/create-cloudflare/templates/queues/js/vite.config.ts new file mode 100644 index 00000000000..94ac9a0319e --- /dev/null +++ b/packages/create-cloudflare/templates/queues/js/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/queues/ts/.prettierrc b/packages/create-cloudflare/templates/queues/ts/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/queues/ts/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/queues/ts/package.json b/packages/create-cloudflare/templates/queues/ts/package.json index 0c13d8ba750..d82643491b1 100644 --- a/packages/create-cloudflare/templates/queues/ts/package.json +++ b/packages/create-cloudflare/templates/queues/ts/package.json @@ -6,10 +6,24 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "cf-typegen": "wrangler types" + "cf-typegen": "wrangler types", + "format": "vp fmt", + "check": "wrangler types && vp check" }, "devDependencies": { "typescript": "^5.5.2", - "wrangler": "^3.101.0" + "wrangler": "^3.101.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/queues/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/queues/ts/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/queues/ts/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/queues/ts/tsconfig.json b/packages/create-cloudflare/templates/queues/ts/tsconfig.json index 6841f3f15bf..b6dc5ad59dd 100644 --- a/packages/create-cloudflare/templates/queues/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/queues/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "node", + "moduleResolution": "Bundler", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/queues/ts/vite.config.ts b/packages/create-cloudflare/templates/queues/ts/vite.config.ts new file mode 100644 index 00000000000..7799278b1be --- /dev/null +++ b/packages/create-cloudflare/templates/queues/ts/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/scheduled/js/.prettierrc b/packages/create-cloudflare/templates/scheduled/js/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/scheduled/js/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/scheduled/js/package.json b/packages/create-cloudflare/templates/scheduled/js/package.json index b813e55aede..151ded83dfd 100644 --- a/packages/create-cloudflare/templates/scheduled/js/package.json +++ b/packages/create-cloudflare/templates/scheduled/js/package.json @@ -5,9 +5,23 @@ "scripts": { "deploy": "wrangler deploy", "dev": "wrangler dev --test-scheduled", - "start": "wrangler dev --test-scheduled" + "start": "wrangler dev --test-scheduled", + "format": "vp fmt", + "check": "vp check" }, "devDependencies": { - "wrangler": "^3.101.0" + "wrangler": "^3.101.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } } diff --git a/packages/create-cloudflare/templates/scheduled/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/scheduled/js/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/scheduled/js/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/scheduled/js/vite.config.ts b/packages/create-cloudflare/templates/scheduled/js/vite.config.ts new file mode 100644 index 00000000000..94ac9a0319e --- /dev/null +++ b/packages/create-cloudflare/templates/scheduled/js/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); diff --git a/packages/create-cloudflare/templates/scheduled/ts/.prettierrc b/packages/create-cloudflare/templates/scheduled/ts/.prettierrc deleted file mode 100644 index 5c7b5d3c7a7..00000000000 --- a/packages/create-cloudflare/templates/scheduled/ts/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "printWidth": 140, - "singleQuote": true, - "semi": true, - "useTabs": true -} diff --git a/packages/create-cloudflare/templates/scheduled/ts/package.json b/packages/create-cloudflare/templates/scheduled/ts/package.json index 3e67c243110..6a62e23840b 100644 --- a/packages/create-cloudflare/templates/scheduled/ts/package.json +++ b/packages/create-cloudflare/templates/scheduled/ts/package.json @@ -6,10 +6,24 @@ "deploy": "wrangler deploy", "dev": "wrangler dev --test-scheduled", "start": "wrangler dev --test-scheduled", - "cf-typegen": "wrangler types" + "cf-typegen": "wrangler types", + "format": "vp fmt", + "check": "wrangler types && vp check" }, "devDependencies": { "typescript": "^5.5.2", - "wrangler": "^3.101.0" + "wrangler": "^3.101.0", + "vite-plus": "1.4.0" + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" + }, + "engines": { + "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + }, + "resolutions": { + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", + "vitest": "5.0.5" } -} \ No newline at end of file +} diff --git a/packages/create-cloudflare/templates/scheduled/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/scheduled/ts/pnpm-workspace.yaml new file mode 100644 index 00000000000..4d63be6ec0c --- /dev/null +++ b/packages/create-cloudflare/templates/scheduled/ts/pnpm-workspace.yaml @@ -0,0 +1,6 @@ +packages: + - "." + +overrides: + vite: npm:@voidzero-dev/vite-plus-core@1.4.0 + vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/scheduled/ts/tsconfig.json b/packages/create-cloudflare/templates/scheduled/ts/tsconfig.json index 6841f3f15bf..b6dc5ad59dd 100644 --- a/packages/create-cloudflare/templates/scheduled/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/scheduled/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "node", + "moduleResolution": "Bundler", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/scheduled/ts/vite.config.ts b/packages/create-cloudflare/templates/scheduled/ts/vite.config.ts new file mode 100644 index 00000000000..7799278b1be --- /dev/null +++ b/packages/create-cloudflare/templates/scheduled/ts/vite.config.ts @@ -0,0 +1,6 @@ +import { defineConfig } from "vite-plus"; + +export default defineConfig({ + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, +}); From 604fd24e14e0ec49bf73bebf634b1d0a85b3bbb9 Mon Sep 17 00:00:00 2001 From: Brendan Irvine-Broque Date: Thu, 29 Oct 2026 10:29:08 -0700 Subject: [PATCH 2/8] Declare the Vite+ core explicitly in bundled starters --- packages/create-cloudflare/templates/common/js/package.json | 3 ++- packages/create-cloudflare/templates/common/ts/package.json | 3 ++- .../hello-world-durable-object-with-assets/js/package.json | 3 ++- .../hello-world-durable-object-with-assets/ts/package.json | 3 ++- .../templates/hello-world-durable-object/js/package.json | 3 ++- .../templates/hello-world-durable-object/ts/package.json | 3 ++- .../templates/hello-world-with-assets/js/package.json | 3 ++- .../templates/hello-world-with-assets/ts/package.json | 3 ++- .../templates/hello-world-workflows/js/package.json | 3 ++- .../templates/hello-world-workflows/ts/package.json | 3 ++- .../create-cloudflare/templates/hello-world/js/package.json | 1 + .../create-cloudflare/templates/hello-world/ts/package.json | 1 + packages/create-cloudflare/templates/openapi/ts/package.json | 3 ++- packages/create-cloudflare/templates/queues/js/package.json | 3 ++- packages/create-cloudflare/templates/queues/ts/package.json | 3 ++- packages/create-cloudflare/templates/scheduled/js/package.json | 3 ++- packages/create-cloudflare/templates/scheduled/ts/package.json | 3 ++- 17 files changed, 32 insertions(+), 15 deletions(-) diff --git a/packages/create-cloudflare/templates/common/js/package.json b/packages/create-cloudflare/templates/common/js/package.json index 0ae1bdcce8b..05ccb99dbbb 100644 --- a/packages/create-cloudflare/templates/common/js/package.json +++ b/packages/create-cloudflare/templates/common/js/package.json @@ -12,7 +12,8 @@ "devDependencies": { "itty-router": "^3.0.12", "wrangler": "^3.101.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/common/ts/package.json b/packages/create-cloudflare/templates/common/ts/package.json index 76a18b433cc..257f5aeccfa 100644 --- a/packages/create-cloudflare/templates/common/ts/package.json +++ b/packages/create-cloudflare/templates/common/ts/package.json @@ -14,7 +14,8 @@ "itty-router": "^3.0.12", "typescript": "^5.5.2", "wrangler": "^3.101.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json index 98b218f6643..18729cbd9e4 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json @@ -11,7 +11,8 @@ }, "devDependencies": { "wrangler": "^3.101.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json index d82643491b1..31afe15817b 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json @@ -13,7 +13,8 @@ "devDependencies": { "typescript": "^5.5.2", "wrangler": "^3.101.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json b/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json index 98b218f6643..18729cbd9e4 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json @@ -11,7 +11,8 @@ }, "devDependencies": { "wrangler": "^3.101.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json b/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json index d82643491b1..31afe15817b 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json @@ -13,7 +13,8 @@ "devDependencies": { "typescript": "^5.5.2", "wrangler": "^3.101.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json b/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json index 55b733349eb..4750f433588 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json @@ -14,7 +14,8 @@ "@cloudflare/vitest-plugin": "^1.4.10", "wrangler": "^4", "vitest": "5.0.5", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json b/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json index c6f1d8adafe..d72e7c53fa4 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json @@ -16,7 +16,8 @@ "typescript": "^5.5.2", "vitest": "5.0.5", "wrangler": "^4", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-workflows/js/package.json b/packages/create-cloudflare/templates/hello-world-workflows/js/package.json index 16ea047865e..8de89f4b314 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-workflows/js/package.json @@ -11,7 +11,8 @@ }, "devDependencies": { "wrangler": "^4.6.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json b/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json index e6f2cc0ac79..be20f359ace 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json @@ -13,7 +13,8 @@ "devDependencies": { "typescript": "^5.0.4", "wrangler": "^4.6.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world/js/package.json b/packages/create-cloudflare/templates/hello-world/js/package.json index 6c25aef9d32..471e8159c0f 100644 --- a/packages/create-cloudflare/templates/hello-world/js/package.json +++ b/packages/create-cloudflare/templates/hello-world/js/package.json @@ -12,6 +12,7 @@ }, "devDependencies": { "@cloudflare/vitest-plugin": "^1.4.10", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", "vite-plus": "1.4.0", "vitest": "5.0.5", "wrangler": "^4" diff --git a/packages/create-cloudflare/templates/hello-world/ts/package.json b/packages/create-cloudflare/templates/hello-world/ts/package.json index 8c71e050467..21b4c6c9573 100644 --- a/packages/create-cloudflare/templates/hello-world/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world/ts/package.json @@ -14,6 +14,7 @@ "devDependencies": { "@cloudflare/vitest-plugin": "^1.4.10", "typescript": "^5.5.2", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", "vite-plus": "1.4.0", "vitest": "5.0.5", "wrangler": "^4" diff --git a/packages/create-cloudflare/templates/openapi/ts/package.json b/packages/create-cloudflare/templates/openapi/ts/package.json index 7e4c3f8c6ae..8628a3f0e8c 100644 --- a/packages/create-cloudflare/templates/openapi/ts/package.json +++ b/packages/create-cloudflare/templates/openapi/ts/package.json @@ -19,7 +19,8 @@ "@cloudflare/workers-types": "^5.20260706.1", "@types/node": "^25.6.0", "wrangler": "^4.81.1", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/queues/js/package.json b/packages/create-cloudflare/templates/queues/js/package.json index 98b218f6643..18729cbd9e4 100644 --- a/packages/create-cloudflare/templates/queues/js/package.json +++ b/packages/create-cloudflare/templates/queues/js/package.json @@ -11,7 +11,8 @@ }, "devDependencies": { "wrangler": "^3.101.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/queues/ts/package.json b/packages/create-cloudflare/templates/queues/ts/package.json index d82643491b1..31afe15817b 100644 --- a/packages/create-cloudflare/templates/queues/ts/package.json +++ b/packages/create-cloudflare/templates/queues/ts/package.json @@ -13,7 +13,8 @@ "devDependencies": { "typescript": "^5.5.2", "wrangler": "^3.101.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/scheduled/js/package.json b/packages/create-cloudflare/templates/scheduled/js/package.json index 151ded83dfd..74ba954b05d 100644 --- a/packages/create-cloudflare/templates/scheduled/js/package.json +++ b/packages/create-cloudflare/templates/scheduled/js/package.json @@ -11,7 +11,8 @@ }, "devDependencies": { "wrangler": "^3.101.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/scheduled/ts/package.json b/packages/create-cloudflare/templates/scheduled/ts/package.json index 6a62e23840b..6c02db66547 100644 --- a/packages/create-cloudflare/templates/scheduled/ts/package.json +++ b/packages/create-cloudflare/templates/scheduled/ts/package.json @@ -13,7 +13,8 @@ "devDependencies": { "typescript": "^5.5.2", "wrangler": "^3.101.0", - "vite-plus": "1.4.0" + "vite-plus": "1.4.0", + "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" }, "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", From fe44840820e2962fa0f8a64c54f927e7c2a4c98b Mon Sep 17 00:00:00 2001 From: Brendan Irvine-Broque Date: Thu, 29 Oct 2026 10:37:47 -0700 Subject: [PATCH 3/8] Exclude dependencies and generated output from starter checks --- .../templates/common/js/vite.config.ts | 4 ++-- .../templates/common/ts/vite.config.ts | 4 ++-- .../js/vite.config.ts | 4 ++-- .../ts/vite.config.ts | 4 ++-- .../hello-world-durable-object/js/vite.config.ts | 4 ++-- .../hello-world-durable-object/ts/vite.config.ts | 4 ++-- .../hello-world-with-assets/js/vite.config.ts | 4 ++-- .../hello-world-with-assets/ts/vite.config.ts | 4 ++-- .../hello-world-workflows/js/vite.config.ts | 4 ++-- .../hello-world-workflows/ts/vite.config.ts | 4 ++-- .../templates/hello-world/js/vite.config.ts | 14 ++++++++++++-- .../templates/hello-world/ts/vite.config.ts | 14 ++++++++++++-- .../templates/openapi/ts/vite.config.ts | 4 ++-- .../templates/queues/js/vite.config.ts | 4 ++-- .../templates/queues/ts/vite.config.ts | 4 ++-- .../templates/scheduled/js/vite.config.ts | 4 ++-- .../templates/scheduled/ts/vite.config.ts | 4 ++-- 17 files changed, 54 insertions(+), 34 deletions(-) diff --git a/packages/create-cloudflare/templates/common/js/vite.config.ts b/packages/create-cloudflare/templates/common/js/vite.config.ts index 94ac9a0319e..3ec7f681770 100644 --- a/packages/create-cloudflare/templates/common/js/vite.config.ts +++ b/packages/create-cloudflare/templates/common/js/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/common/ts/vite.config.ts b/packages/create-cloudflare/templates/common/ts/vite.config.ts index 7799278b1be..aa4277dc7e5 100644 --- a/packages/create-cloudflare/templates/common/ts/vite.config.ts +++ b/packages/create-cloudflare/templates/common/ts/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts index 94ac9a0319e..3ec7f681770 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts index 7799278b1be..aa4277dc7e5 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts index 94ac9a0319e..3ec7f681770 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts +++ b/packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts index 7799278b1be..aa4277dc7e5 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts index 94ac9a0319e..3ec7f681770 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts index 7799278b1be..aa4277dc7e5 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts index 94ac9a0319e..3ec7f681770 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts +++ b/packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts index 7799278b1be..aa4277dc7e5 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts +++ b/packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/hello-world/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world/js/vite.config.ts index fef4f402d24..1c411fab4f6 100644 --- a/packages/create-cloudflare/templates/hello-world/js/vite.config.ts +++ b/packages/create-cloudflare/templates/hello-world/js/vite.config.ts @@ -4,10 +4,20 @@ export default defineConfig({ fmt: { useTabs: true, sortPackageJson: false, - ignorePatterns: ["worker-configuration.d.ts"], + ignorePatterns: [ + "node_modules/**", + ".wrangler/**", + "dist/**", + "worker-configuration.d.ts", + ], }, lint: { options: { typeAware: false, typeCheck: false }, - ignorePatterns: ["worker-configuration.d.ts"], + ignorePatterns: [ + "node_modules/**", + ".wrangler/**", + "dist/**", + "worker-configuration.d.ts", + ], }, }); diff --git a/packages/create-cloudflare/templates/hello-world/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world/ts/vite.config.ts index 6558e6befe3..7e334ad4a40 100644 --- a/packages/create-cloudflare/templates/hello-world/ts/vite.config.ts +++ b/packages/create-cloudflare/templates/hello-world/ts/vite.config.ts @@ -4,10 +4,20 @@ export default defineConfig({ fmt: { useTabs: true, sortPackageJson: false, - ignorePatterns: ["worker-configuration.d.ts"], + ignorePatterns: [ + "node_modules/**", + ".wrangler/**", + "dist/**", + "worker-configuration.d.ts", + ], }, lint: { options: { typeAware: true, typeCheck: true }, - ignorePatterns: ["worker-configuration.d.ts"], + ignorePatterns: [ + "node_modules/**", + ".wrangler/**", + "dist/**", + "worker-configuration.d.ts", + ], }, }); diff --git a/packages/create-cloudflare/templates/openapi/ts/vite.config.ts b/packages/create-cloudflare/templates/openapi/ts/vite.config.ts index 7799278b1be..aa4277dc7e5 100644 --- a/packages/create-cloudflare/templates/openapi/ts/vite.config.ts +++ b/packages/create-cloudflare/templates/openapi/ts/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/queues/js/vite.config.ts b/packages/create-cloudflare/templates/queues/js/vite.config.ts index 94ac9a0319e..3ec7f681770 100644 --- a/packages/create-cloudflare/templates/queues/js/vite.config.ts +++ b/packages/create-cloudflare/templates/queues/js/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/queues/ts/vite.config.ts b/packages/create-cloudflare/templates/queues/ts/vite.config.ts index 7799278b1be..aa4277dc7e5 100644 --- a/packages/create-cloudflare/templates/queues/ts/vite.config.ts +++ b/packages/create-cloudflare/templates/queues/ts/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/scheduled/js/vite.config.ts b/packages/create-cloudflare/templates/scheduled/js/vite.config.ts index 94ac9a0319e..3ec7f681770 100644 --- a/packages/create-cloudflare/templates/scheduled/js/vite.config.ts +++ b/packages/create-cloudflare/templates/scheduled/js/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); diff --git a/packages/create-cloudflare/templates/scheduled/ts/vite.config.ts b/packages/create-cloudflare/templates/scheduled/ts/vite.config.ts index 7799278b1be..aa4277dc7e5 100644 --- a/packages/create-cloudflare/templates/scheduled/ts/vite.config.ts +++ b/packages/create-cloudflare/templates/scheduled/ts/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite-plus"; export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["worker-configuration.d.ts"] }, + fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, + lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, }); From 4461fa219702122539fbc641fc36fe8c0eb63c52 Mon Sep 17 00:00:00 2001 From: Brendan Irvine-Broque Date: Thu, 29 Oct 2026 10:39:38 -0700 Subject: [PATCH 4/8] Use Vite Plus Node support range for Wrangler starters --- packages/create-cloudflare/templates/common/js/package.json | 2 +- packages/create-cloudflare/templates/common/ts/package.json | 2 +- .../hello-world-durable-object-with-assets/js/package.json | 2 +- .../hello-world-durable-object-with-assets/ts/package.json | 2 +- .../templates/hello-world-durable-object/js/package.json | 2 +- .../templates/hello-world-durable-object/ts/package.json | 2 +- .../templates/hello-world-with-assets/js/package.json | 2 +- .../templates/hello-world-with-assets/ts/package.json | 2 +- .../templates/hello-world-workflows/js/package.json | 2 +- .../templates/hello-world-workflows/ts/package.json | 2 +- .../create-cloudflare/templates/hello-world/js/package.json | 2 +- .../create-cloudflare/templates/hello-world/ts/package.json | 2 +- packages/create-cloudflare/templates/openapi/ts/package.json | 2 +- packages/create-cloudflare/templates/queues/js/package.json | 2 +- packages/create-cloudflare/templates/queues/ts/package.json | 2 +- packages/create-cloudflare/templates/scheduled/js/package.json | 2 +- packages/create-cloudflare/templates/scheduled/ts/package.json | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/create-cloudflare/templates/common/js/package.json b/packages/create-cloudflare/templates/common/js/package.json index 05ccb99dbbb..d9a95f2bc3c 100644 --- a/packages/create-cloudflare/templates/common/js/package.json +++ b/packages/create-cloudflare/templates/common/js/package.json @@ -20,7 +20,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/common/ts/package.json b/packages/create-cloudflare/templates/common/ts/package.json index 257f5aeccfa..8aad044d644 100644 --- a/packages/create-cloudflare/templates/common/ts/package.json +++ b/packages/create-cloudflare/templates/common/ts/package.json @@ -22,7 +22,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json index 18729cbd9e4..f5e23fec47b 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json @@ -19,7 +19,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json index 31afe15817b..02d2855a0dd 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json @@ -21,7 +21,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json b/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json index 18729cbd9e4..f5e23fec47b 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json @@ -19,7 +19,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json b/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json index 31afe15817b..02d2855a0dd 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json @@ -21,7 +21,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json b/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json index 4750f433588..cfde968d252 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json @@ -22,7 +22,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json b/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json index d72e7c53fa4..e0681bfb778 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json @@ -24,7 +24,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-workflows/js/package.json b/packages/create-cloudflare/templates/hello-world-workflows/js/package.json index 8de89f4b314..8613db47e44 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-workflows/js/package.json @@ -19,7 +19,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json b/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json index be20f359ace..fa29876512e 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json @@ -21,7 +21,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/hello-world/js/package.json b/packages/create-cloudflare/templates/hello-world/js/package.json index 471e8159c0f..f3ee79cba58 100644 --- a/packages/create-cloudflare/templates/hello-world/js/package.json +++ b/packages/create-cloudflare/templates/hello-world/js/package.json @@ -26,6 +26,6 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" } } diff --git a/packages/create-cloudflare/templates/hello-world/ts/package.json b/packages/create-cloudflare/templates/hello-world/ts/package.json index 21b4c6c9573..004505f69e9 100644 --- a/packages/create-cloudflare/templates/hello-world/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world/ts/package.json @@ -28,6 +28,6 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" } } diff --git a/packages/create-cloudflare/templates/openapi/ts/package.json b/packages/create-cloudflare/templates/openapi/ts/package.json index 8628a3f0e8c..c94474544d6 100644 --- a/packages/create-cloudflare/templates/openapi/ts/package.json +++ b/packages/create-cloudflare/templates/openapi/ts/package.json @@ -27,7 +27,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/queues/js/package.json b/packages/create-cloudflare/templates/queues/js/package.json index 18729cbd9e4..f5e23fec47b 100644 --- a/packages/create-cloudflare/templates/queues/js/package.json +++ b/packages/create-cloudflare/templates/queues/js/package.json @@ -19,7 +19,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/queues/ts/package.json b/packages/create-cloudflare/templates/queues/ts/package.json index 31afe15817b..02d2855a0dd 100644 --- a/packages/create-cloudflare/templates/queues/ts/package.json +++ b/packages/create-cloudflare/templates/queues/ts/package.json @@ -21,7 +21,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/scheduled/js/package.json b/packages/create-cloudflare/templates/scheduled/js/package.json index 74ba954b05d..20c43701021 100644 --- a/packages/create-cloudflare/templates/scheduled/js/package.json +++ b/packages/create-cloudflare/templates/scheduled/js/package.json @@ -19,7 +19,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", diff --git a/packages/create-cloudflare/templates/scheduled/ts/package.json b/packages/create-cloudflare/templates/scheduled/ts/package.json index 6c02db66547..b66080dc205 100644 --- a/packages/create-cloudflare/templates/scheduled/ts/package.json +++ b/packages/create-cloudflare/templates/scheduled/ts/package.json @@ -21,7 +21,7 @@ "vitest": "5.0.5" }, "engines": { - "node": "^22.23.0 || ^24.22.0 || ^26.12.0" + "node": "^22.18.0 || ^24.11.0 || >=26.0.0" }, "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", From a004a297eaa4ffff0816bdb06d3ff42dfaabc877 Mon Sep 17 00:00:00 2001 From: Brendan Irvine-Broque Date: Thu, 29 Oct 2026 10:50:12 -0700 Subject: [PATCH 5/8] Isolate generated project package settings in Wrangler C3 integration test --- packages/wrangler/e2e/c3-integration.test.ts | 10 +++++++--- packages/wrangler/package.json | 1 + pnpm-lock.yaml | 3 +++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/wrangler/e2e/c3-integration.test.ts b/packages/wrangler/e2e/c3-integration.test.ts index 3b1e3530691..601c54f2912 100644 --- a/packages/wrangler/e2e/c3-integration.test.ts +++ b/packages/wrangler/e2e/c3-integration.test.ts @@ -1,6 +1,7 @@ import { execSync } from "node:child_process"; import { readFileSync } from "node:fs"; import path from "node:path"; +import { overrideConfigEnv } from "@cloudflare/mock-npm-registry/config-env"; import { fetch } from "undici"; import { assert, beforeAll, describe, it } from "vitest"; import { WranglerE2ETestHelper } from "./helpers/e2e-wrangler-test"; @@ -26,7 +27,9 @@ describe.runIf(process.platform !== "win32")("c3 integration", () => { it("init project via c3", async ({ expect }) => { const env = { - ...process.env, + // Generated projects test published dependencies independently of the SDK + // workspace's release-age policy, matching the C3 E2E harness. + ...overrideConfigEnv(process.env, { "minimum-release-age": "0" }).env, WRANGLER_C3_COMMAND: `--package ${c3Packed} dlx create-cloudflare`, GIT_AUTHOR_NAME: "test-user", GIT_AUTHOR_EMAIL: "test-user@cloudflare.com", @@ -34,16 +37,17 @@ describe.runIf(process.platform !== "win32")("c3 integration", () => { GIT_COMMITTER_EMAIL: "test-user@cloudflare.com", }; - await helper.run(`wrangler init ${workerName} --yes`, { + const result = await helper.run(`wrangler init ${workerName} --yes`, { env, }); + expect(result.status).toBe(0); expect( readFileSync( path.join(helper.tmpPath, workerName, "wrangler.jsonc"), "utf8" ) - ).not.toContain(""); + ).not.toMatch(/<[A-Z_]+>/); }); it("can run `wrangler dev` on generated worker", async ({ expect }) => { diff --git a/packages/wrangler/package.json b/packages/wrangler/package.json index 661f19375c8..49da922b723 100644 --- a/packages/wrangler/package.json +++ b/packages/wrangler/package.json @@ -101,6 +101,7 @@ "@cloudflare/config": "workspace:*", "@cloudflare/containers-shared": "workspace:*", "@cloudflare/deploy-helpers": "workspace:*", + "@cloudflare/mock-npm-registry": "workspace:*", "@cloudflare/pages-functions": "workspace:*", "@cloudflare/pages-shared": "workspace:^", "@cloudflare/remote-bindings": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e4e6b603492..4aea4ba7c29 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4595,6 +4595,9 @@ importers: '@cloudflare/deploy-helpers': specifier: workspace:* version: link:../deploy-helpers + '@cloudflare/mock-npm-registry': + specifier: workspace:* + version: link:../mock-npm-registry '@cloudflare/pages-functions': specifier: workspace:* version: link:../pages-functions From e35c2c2a350afc722624107e86ebe70adea0810c Mon Sep 17 00:00:00 2001 From: Brendan Irvine-Broque Date: Thu, 29 Oct 2026 15:38:56 -0700 Subject: [PATCH 6/8] [autoconfig] Limit Vite+ support to project command detection --- .changeset/cf-remote-templates.md | 7 ---- .changeset/viteplus-worker-templates.md | 7 ---- .../e2e/helpers/workers-helpers.ts | 7 ++-- .../e2e/tests/workers/workers.test.ts | 11 +---- .../src/__tests__/templates.test.ts | 40 ------------------- packages/create-cloudflare/src/cli.ts | 3 -- .../src/helpers/__tests__/vite-plus.test.ts | 38 ------------------ .../src/helpers/vite-plus.ts | 21 ---------- packages/create-cloudflare/src/templates.ts | 10 ++--- .../templates/common/js/.prettierrc | 6 +++ .../templates/common/js/package.json | 19 +-------- .../templates/common/js/pnpm-workspace.yaml | 6 --- .../templates/common/js/vite.config.ts | 6 --- .../templates/common/ts/.prettierrc | 6 +++ .../templates/common/ts/package.json | 19 +-------- .../templates/common/ts/pnpm-workspace.yaml | 6 --- .../templates/common/ts/tsconfig.json | 2 +- .../templates/common/ts/vite.config.ts | 6 --- .../js/.prettierrc | 6 +++ .../js/package.json | 19 +-------- .../js/pnpm-workspace.yaml | 6 --- .../js/vite.config.ts | 6 --- .../ts/.prettierrc | 6 +++ .../ts/package.json | 19 +-------- .../ts/pnpm-workspace.yaml | 6 --- .../ts/tsconfig.json | 2 +- .../ts/vite.config.ts | 6 --- .../hello-world-durable-object/js/.prettierrc | 6 +++ .../js/package.json | 19 +-------- .../js/pnpm-workspace.yaml | 6 --- .../js/vite.config.ts | 6 --- .../hello-world-durable-object/ts/.prettierrc | 6 +++ .../ts/package.json | 19 +-------- .../ts/pnpm-workspace.yaml | 6 --- .../ts/tsconfig.json | 2 +- .../ts/vite.config.ts | 6 --- .../hello-world-with-assets/js/.prettierrc | 6 +++ .../hello-world-with-assets/js/package.json | 21 ++-------- .../js/pnpm-workspace.yaml | 6 --- .../js/test/index.spec.js | 2 +- .../hello-world-with-assets/js/vite.config.ts | 6 --- .../hello-world-with-assets/ts/.prettierrc | 6 +++ .../hello-world-with-assets/ts/package.json | 25 +++--------- .../ts/pnpm-workspace.yaml | 6 --- .../ts/test/index.spec.ts | 2 +- .../hello-world-with-assets/ts/vite.config.ts | 6 --- .../ts/vitest.config.mts | 2 +- .../hello-world-workflows/js/package.json | 19 +-------- .../js/pnpm-workspace.yaml | 6 --- .../hello-world-workflows/js/vite.config.ts | 6 --- .../hello-world-workflows/ts/package.json | 19 +-------- .../ts/pnpm-workspace.yaml | 6 --- .../hello-world-workflows/ts/tsconfig.json | 2 +- .../hello-world-workflows/ts/vite.config.ts | 6 --- .../templates/hello-world/js/.prettierrc | 6 +++ .../templates/hello-world/js/package.json | 21 ++-------- .../hello-world/js/pnpm-workspace.yaml | 6 --- .../hello-world/js/test/index.spec.js | 2 +- .../templates/hello-world/js/vite.config.ts | 23 ----------- .../templates/hello-world/ts/.prettierrc | 6 +++ .../templates/hello-world/ts/package.json | 23 ++--------- .../hello-world/ts/pnpm-workspace.yaml | 6 --- .../hello-world/ts/test/index.spec.ts | 2 +- .../templates/hello-world/ts/vite.config.ts | 23 ----------- .../hello-world/ts/vitest.config.mts | 2 +- .../templates/openapi/ts/package.json | 19 +-------- .../templates/openapi/ts/pnpm-workspace.yaml | 6 --- .../templates/openapi/ts/vite.config.ts | 6 --- .../templates/queues/js/.prettierrc | 6 +++ .../templates/queues/js/package.json | 19 +-------- .../templates/queues/js/pnpm-workspace.yaml | 6 --- .../templates/queues/js/vite.config.ts | 6 --- .../templates/queues/ts/.prettierrc | 6 +++ .../templates/queues/ts/package.json | 19 +-------- .../templates/queues/ts/pnpm-workspace.yaml | 6 --- .../templates/queues/ts/tsconfig.json | 2 +- .../templates/queues/ts/vite.config.ts | 6 --- .../templates/scheduled/js/.prettierrc | 6 +++ .../templates/scheduled/js/package.json | 19 +-------- .../scheduled/js/pnpm-workspace.yaml | 6 --- .../templates/scheduled/js/vite.config.ts | 6 --- .../templates/scheduled/ts/.prettierrc | 6 +++ .../templates/scheduled/ts/package.json | 21 ++-------- .../scheduled/ts/pnpm-workspace.yaml | 6 --- .../templates/scheduled/ts/tsconfig.json | 2 +- .../templates/scheduled/ts/vite.config.ts | 6 --- packages/wrangler/e2e/c3-integration.test.ts | 10 ++--- packages/wrangler/package.json | 1 - pnpm-lock.yaml | 3 -- 89 files changed, 149 insertions(+), 694 deletions(-) delete mode 100644 .changeset/cf-remote-templates.md delete mode 100644 .changeset/viteplus-worker-templates.md delete mode 100644 packages/create-cloudflare/src/helpers/__tests__/vite-plus.test.ts delete mode 100644 packages/create-cloudflare/src/helpers/vite-plus.ts create mode 100644 packages/create-cloudflare/templates/common/js/.prettierrc delete mode 100644 packages/create-cloudflare/templates/common/js/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/common/js/vite.config.ts create mode 100644 packages/create-cloudflare/templates/common/ts/.prettierrc delete mode 100644 packages/create-cloudflare/templates/common/ts/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/common/ts/vite.config.ts create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.prettierrc delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.prettierrc delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/js/.prettierrc delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/js/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts create mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/ts/.prettierrc delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/ts/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts create mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/js/.prettierrc delete mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/js/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts create mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/ts/.prettierrc delete mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/ts/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/hello-world-workflows/js/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/hello-world-workflows/ts/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts create mode 100644 packages/create-cloudflare/templates/hello-world/js/.prettierrc delete mode 100644 packages/create-cloudflare/templates/hello-world/js/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/hello-world/js/vite.config.ts create mode 100644 packages/create-cloudflare/templates/hello-world/ts/.prettierrc delete mode 100644 packages/create-cloudflare/templates/hello-world/ts/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/hello-world/ts/vite.config.ts delete mode 100644 packages/create-cloudflare/templates/openapi/ts/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/openapi/ts/vite.config.ts create mode 100644 packages/create-cloudflare/templates/queues/js/.prettierrc delete mode 100644 packages/create-cloudflare/templates/queues/js/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/queues/js/vite.config.ts create mode 100644 packages/create-cloudflare/templates/queues/ts/.prettierrc delete mode 100644 packages/create-cloudflare/templates/queues/ts/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/queues/ts/vite.config.ts create mode 100644 packages/create-cloudflare/templates/scheduled/js/.prettierrc delete mode 100644 packages/create-cloudflare/templates/scheduled/js/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/scheduled/js/vite.config.ts create mode 100644 packages/create-cloudflare/templates/scheduled/ts/.prettierrc delete mode 100644 packages/create-cloudflare/templates/scheduled/ts/pnpm-workspace.yaml delete mode 100644 packages/create-cloudflare/templates/scheduled/ts/vite.config.ts diff --git a/.changeset/cf-remote-templates.md b/.changeset/cf-remote-templates.md deleted file mode 100644 index 02162f58da2..00000000000 --- a/.changeset/cf-remote-templates.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Accept remote Workers templates configured with cloudflare.config.ts - -Allow typed-configuration templates through validation so the existing cf installation, type-generation, and deployment paths can handle them. diff --git a/.changeset/viteplus-worker-templates.md b/.changeset/viteplus-worker-templates.md deleted file mode 100644 index 1d46fdc61eb..00000000000 --- a/.changeset/viteplus-worker-templates.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"create-cloudflare": minor ---- - -Use Vite+ for checks, formatting, and tests in bundled JavaScript and TypeScript Worker starters - -Keep framework-owned scaffolding and deployment commands unchanged. Include standalone package-manager overrides so copied starters share the Vite+ toolchain. diff --git a/packages/create-cloudflare/e2e/helpers/workers-helpers.ts b/packages/create-cloudflare/e2e/helpers/workers-helpers.ts index daeb6d4aa65..c100cf5fbc5 100644 --- a/packages/create-cloudflare/e2e/helpers/workers-helpers.ts +++ b/packages/create-cloudflare/e2e/helpers/workers-helpers.ts @@ -122,13 +122,12 @@ export async function verifyLocalDev( } } -export async function verifyProjectScript( +export async function verifyTestScript( projectPath: string, - logStream: Writable, - script: "test" | "check" + logStream: Writable ) { const proc = spawnWithLogging( - [pm, "run", script], + [pm, "run", "test"], { cwd: projectPath, env: { diff --git a/packages/create-cloudflare/e2e/tests/workers/workers.test.ts b/packages/create-cloudflare/e2e/tests/workers/workers.test.ts index 8c60794d389..7a54a245c4f 100644 --- a/packages/create-cloudflare/e2e/tests/workers/workers.test.ts +++ b/packages/create-cloudflare/e2e/tests/workers/workers.test.ts @@ -15,7 +15,7 @@ import { runC3ForWorkerTest, verifyDeployment, verifyLocalDev, - verifyProjectScript, + verifyTestScript, } from "../../helpers/workers-helpers"; import { getWorkerTests } from "./test-config"; import type { RunnerTestSuite } from "vitest"; @@ -79,13 +79,6 @@ describe ); } - const packageJson = readJSON(pkgJsonPath) as { - devDependencies?: Record; - }; - if (packageJson.devDependencies?.["vite-plus"]) { - await verifyProjectScript(project.path, logStream, "check"); - } - const { verifyDeploy, verifyTest } = testConfig; if (verifyDeploy) { if (deployedUrl) { @@ -101,7 +94,7 @@ describe } if (verifyTest) { - await verifyProjectScript(project.path, logStream, "test"); + await verifyTestScript(project.path, logStream); } } finally { await deleteWorker(project.name); diff --git a/packages/create-cloudflare/src/__tests__/templates.test.ts b/packages/create-cloudflare/src/__tests__/templates.test.ts index 30bb7eb6294..ce72c8b2486 100644 --- a/packages/create-cloudflare/src/__tests__/templates.test.ts +++ b/packages/create-cloudflare/src/__tests__/templates.test.ts @@ -15,7 +15,6 @@ import { getOtherTemplateMap, updatePackageName, writeAgentsMd, - validateTemplateSrcDirectory, } from "../templates"; import type { MultiPlatformTemplateConfig, TemplateConfig } from "../templates"; import type { C3Args, C3Context } from "types"; @@ -553,42 +552,3 @@ describe("writeAgentsMd", () => { expect(writeFileMock).not.toHaveBeenCalled(); }); }); - -describe("validateTemplateSrcDirectory", () => { - test.for([ - "cloudflare.config.ts", - "wrangler.toml", - "wrangler.json", - "wrangler.jsonc", - ])("accepts a Worker template with %s", (filename, { expect }) => { - vi.mocked(existsSync).mockImplementation( - (path) => - String(path).endsWith(filename) || String(path).endsWith("package.json") - ); - expect(() => - validateTemplateSrcDirectory("/template", { - platform: "workers", - } as TemplateConfig) - ).not.toThrow(); - }); - test("rejects a Worker template without configuration", ({ expect }) => { - vi.mocked(existsSync).mockImplementation((path) => - String(path).endsWith("package.json") - ); - expect(() => - validateTemplateSrcDirectory("/template", { - platform: "workers", - } as TemplateConfig) - ).toThrow("cloudflare.config.ts"); - }); - test("still requires a manifest for a cf template", ({ expect }) => { - vi.mocked(existsSync).mockImplementation((path) => - String(path).endsWith("cloudflare.config.ts") - ); - expect(() => - validateTemplateSrcDirectory("/template", { - platform: "workers", - } as TemplateConfig) - ).toThrow("package.json"); - }); -}); diff --git a/packages/create-cloudflare/src/cli.ts b/packages/create-cloudflare/src/cli.ts index fdbca81433a..56e962828b4 100644 --- a/packages/create-cloudflare/src/cli.ts +++ b/packages/create-cloudflare/src/cli.ts @@ -24,7 +24,6 @@ import { isIgnoredBuildsError, writePnpmBuildApprovals, } from "helpers/pnpmBuildApprovals"; -import { formatVitePlusProject } from "helpers/vite-plus"; import { version } from "../package.json"; import { usesCfCli } from "./cf/config"; import { maybeOpenBrowser, offerToDeploy, runDeploy } from "./deploy"; @@ -188,8 +187,6 @@ const configure = async (ctx: C3Context) => { await addTypes(ctx); } - await formatVitePlusProject(ctx); - // Autoconfig doesn't mess with version control, so C3 runs this after autoconfig await offerGit(ctx); await gitCommit(ctx); diff --git a/packages/create-cloudflare/src/helpers/__tests__/vite-plus.test.ts b/packages/create-cloudflare/src/helpers/__tests__/vite-plus.test.ts deleted file mode 100644 index 4db0cf1e239..00000000000 --- a/packages/create-cloudflare/src/helpers/__tests__/vite-plus.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { runCommand } from "@cloudflare/cli-shared-helpers/command"; -import { readJSON } from "helpers/files"; -import { formatVitePlusProject } from "helpers/vite-plus"; -import { beforeEach, describe, test, vi } from "vitest"; -import { mockPackageManager } from "./mocks"; -import type { C3Context } from "types"; - -vi.mock("@cloudflare/cli-shared-helpers/command"); -vi.mock("helpers/files"); -vi.mock("which-pm-runs"); -const ctx = { project: { path: "/project" } } as C3Context; - -beforeEach(() => vi.resetAllMocks()); -describe("formatVitePlusProject", () => { - test.for(["npm", "pnpm", "yarn", "bun"])( - "formats generated files with %s", - async (manager, { expect }) => { - mockPackageManager(manager, "12.0.0"); - vi.mocked(readJSON).mockReturnValue({ - devDependencies: { "vite-plus": "1.4.0" }, - }); - await formatVitePlusProject(ctx); - expect(runCommand).toHaveBeenCalledWith( - [ - manager === "npm" ? "npx" : manager === "bun" ? "bunx" : manager, - "vp", - "fmt", - ], - expect.objectContaining({ cwd: "/project", silent: true }) - ); - } - ); - test("does not change projects without Vite+", async ({ expect }) => { - vi.mocked(readJSON).mockReturnValue({}); - await formatVitePlusProject(ctx); - expect(runCommand).not.toHaveBeenCalled(); - }); -}); diff --git a/packages/create-cloudflare/src/helpers/vite-plus.ts b/packages/create-cloudflare/src/helpers/vite-plus.ts deleted file mode 100644 index 8fe22294322..00000000000 --- a/packages/create-cloudflare/src/helpers/vite-plus.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { join } from "node:path"; -import { runCommand } from "@cloudflare/cli-shared-helpers/command"; -import { readJSON } from "./files"; -import { detectPackageManager } from "./packageManagers"; -import type { C3Context } from "types"; - -export async function formatVitePlusProject(ctx: C3Context): Promise { - const pkg = readJSON(join(ctx.project.path, "package.json")) as { - devDependencies?: Record; - }; - if (!pkg.devDependencies?.["vite-plus"]) { - return; - } - const { npx } = detectPackageManager(); - await runCommand([npx, "vp", "fmt"], { - cwd: ctx.project.path, - silent: true, - startText: "Formatting the generated project", - doneText: "Project formatted", - }); -} diff --git a/packages/create-cloudflare/src/templates.ts b/packages/create-cloudflare/src/templates.ts index 8d0dbe23bca..495a30de219 100644 --- a/packages/create-cloudflare/src/templates.ts +++ b/packages/create-cloudflare/src/templates.ts @@ -932,10 +932,7 @@ const validateTemplate = (path: string, config: TemplateConfig) => { } }; -export const validateTemplateSrcDirectory = ( - path: string, - config: TemplateConfig -) => { +const validateTemplateSrcDirectory = (path: string, config: TemplateConfig) => { if (config.platform === "workers") { const wranglerTomlPath = resolve(path, "wrangler.toml"); const wranglerJsonPath = resolve(path, "wrangler.json"); @@ -943,11 +940,10 @@ export const validateTemplateSrcDirectory = ( if ( !existsSync(wranglerTomlPath) && !existsSync(wranglerJsonPath) && - !existsSync(wranglerJsoncPath) && - !existsSync(resolve(path, "cloudflare.config.ts")) + !existsSync(wranglerJsoncPath) ) { throw new Error( - `create-cloudflare templates must contain a "cloudflare.config.ts", "wrangler.toml", or "wrangler.json(c)" file.` + `create-cloudflare templates must contain a "wrangler.toml" or "wrangler.json(c)" file.` ); } } diff --git a/packages/create-cloudflare/templates/common/js/.prettierrc b/packages/create-cloudflare/templates/common/js/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/common/js/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/common/js/package.json b/packages/create-cloudflare/templates/common/js/package.json index d9a95f2bc3c..2d24efb6cc7 100644 --- a/packages/create-cloudflare/templates/common/js/package.json +++ b/packages/create-cloudflare/templates/common/js/package.json @@ -5,25 +5,10 @@ "scripts": { "deploy": "wrangler deploy", "dev": "wrangler dev", - "start": "wrangler dev", - "format": "vp fmt", - "check": "vp check" + "start": "wrangler dev" }, "devDependencies": { "itty-router": "^3.0.12", - "wrangler": "^3.101.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^3.101.0" } } diff --git a/packages/create-cloudflare/templates/common/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/common/js/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/common/js/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/common/js/vite.config.ts b/packages/create-cloudflare/templates/common/js/vite.config.ts deleted file mode 100644 index 3ec7f681770..00000000000 --- a/packages/create-cloudflare/templates/common/js/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/common/ts/.prettierrc b/packages/create-cloudflare/templates/common/ts/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/common/ts/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/common/ts/package.json b/packages/create-cloudflare/templates/common/ts/package.json index 8aad044d644..7c8fff9b3ca 100644 --- a/packages/create-cloudflare/templates/common/ts/package.json +++ b/packages/create-cloudflare/templates/common/ts/package.json @@ -6,26 +6,11 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "cf-typegen": "wrangler types", - "format": "vp fmt", - "check": "wrangler types && vp check" + "cf-typegen": "wrangler types" }, "devDependencies": { "itty-router": "^3.0.12", "typescript": "^5.5.2", - "wrangler": "^3.101.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^3.101.0" } } diff --git a/packages/create-cloudflare/templates/common/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/common/ts/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/common/ts/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/common/ts/tsconfig.json b/packages/create-cloudflare/templates/common/ts/tsconfig.json index 4aabcb12367..93d7417620b 100644 --- a/packages/create-cloudflare/templates/common/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/common/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "Bundler", + "moduleResolution": "node", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/common/ts/vite.config.ts b/packages/create-cloudflare/templates/common/ts/vite.config.ts deleted file mode 100644 index aa4277dc7e5..00000000000 --- a/packages/create-cloudflare/templates/common/ts/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.prettierrc b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json index f5e23fec47b..61822a836fc 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/package.json @@ -5,24 +5,9 @@ "scripts": { "deploy": "wrangler deploy", "dev": "wrangler dev", - "start": "wrangler dev", - "format": "vp fmt", - "check": "vp check" + "start": "wrangler dev" }, "devDependencies": { - "wrangler": "^3.101.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^3.101.0" } } diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts deleted file mode 100644 index 3ec7f681770..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/js/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.prettierrc b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json index 02d2855a0dd..0c13d8ba750 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/package.json @@ -6,25 +6,10 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "cf-typegen": "wrangler types", - "format": "vp fmt", - "check": "wrangler types && vp check" + "cf-typegen": "wrangler types" }, "devDependencies": { "typescript": "^5.5.2", - "wrangler": "^3.101.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^3.101.0" } } diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/tsconfig.json b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/tsconfig.json index b6dc5ad59dd..6841f3f15bf 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "Bundler", + "moduleResolution": "node", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts deleted file mode 100644 index aa4277dc7e5..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object-with-assets/ts/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/.prettierrc b/packages/create-cloudflare/templates/hello-world-durable-object/js/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object/js/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json b/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json index f5e23fec47b..61822a836fc 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object/js/package.json @@ -5,24 +5,9 @@ "scripts": { "deploy": "wrangler deploy", "dev": "wrangler dev", - "start": "wrangler dev", - "format": "vp fmt", - "check": "vp check" + "start": "wrangler dev" }, "devDependencies": { - "wrangler": "^3.101.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^3.101.0" } } diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-durable-object/js/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object/js/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts deleted file mode 100644 index 3ec7f681770..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object/js/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/.prettierrc b/packages/create-cloudflare/templates/hello-world-durable-object/ts/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json b/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json index 02d2855a0dd..0c13d8ba750 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/package.json @@ -6,25 +6,10 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "cf-typegen": "wrangler types", - "format": "vp fmt", - "check": "wrangler types && vp check" + "cf-typegen": "wrangler types" }, "devDependencies": { "typescript": "^5.5.2", - "wrangler": "^3.101.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^3.101.0" } } diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-durable-object/ts/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/tsconfig.json b/packages/create-cloudflare/templates/hello-world-durable-object/ts/tsconfig.json index dd6271ebf35..1d53b5cb5b9 100644 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/hello-world-durable-object/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "Bundler", + "moduleResolution": "node", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts deleted file mode 100644 index aa4277dc7e5..00000000000 --- a/packages/create-cloudflare/templates/hello-world-durable-object/ts/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/.prettierrc b/packages/create-cloudflare/templates/hello-world-with-assets/js/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json b/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json index cfde968d252..f76df697a99 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/package.json @@ -6,26 +6,11 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "test": "vp test", - "format": "vp fmt", - "check": "vp check" + "test": "vitest" }, "devDependencies": { - "@cloudflare/vitest-plugin": "^1.4.10", + "@cloudflare/vitest-plugin": "^1.4.3", "wrangler": "^4", - "vitest": "5.0.5", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "vitest": "~5.0.3" } } diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-with-assets/js/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/test/index.spec.js b/packages/create-cloudflare/templates/hello-world-with-assets/js/test/index.spec.js index 40718bbd848..988410d3439 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/test/index.spec.js +++ b/packages/create-cloudflare/templates/hello-world-with-assets/js/test/index.spec.js @@ -4,7 +4,7 @@ import { waitOnExecutionContext, SELF, } from "cloudflare:test"; -import { describe, it, expect } from "vite-plus/test"; +import { describe, it, expect } from "vitest"; import worker from "../src"; describe("Hello World user worker", () => { diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts deleted file mode 100644 index 3ec7f681770..00000000000 --- a/packages/create-cloudflare/templates/hello-world-with-assets/js/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/.prettierrc b/packages/create-cloudflare/templates/hello-world-with-assets/ts/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json b/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json index e0681bfb778..36b6216e237 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/package.json @@ -6,28 +6,13 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "test": "vp test", - "cf-typegen": "wrangler types", - "format": "vp fmt", - "check": "wrangler types && vp check" + "test": "vitest", + "cf-typegen": "wrangler types" }, "devDependencies": { - "@cloudflare/vitest-plugin": "^1.4.10", + "@cloudflare/vitest-plugin": "^1.4.3", "typescript": "^5.5.2", - "vitest": "5.0.5", - "wrangler": "^4", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "vitest": "~5.0.3", + "wrangler": "^4" } } diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-with-assets/ts/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/test/index.spec.ts b/packages/create-cloudflare/templates/hello-world-with-assets/ts/test/index.spec.ts index 1d20c75c7ce..5cf47b1b79c 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/test/index.spec.ts +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/test/index.spec.ts @@ -4,7 +4,7 @@ import { waitOnExecutionContext, SELF, } from "cloudflare:test"; -import { describe, it, expect } from "vite-plus/test"; +import { describe, it, expect } from "vitest"; import worker from "../src"; describe("Hello World user worker", () => { diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts deleted file mode 100644 index aa4277dc7e5..00000000000 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/hello-world-with-assets/ts/vitest.config.mts b/packages/create-cloudflare/templates/hello-world-with-assets/ts/vitest.config.mts index 8c5d3c38c55..195e6c06dd3 100644 --- a/packages/create-cloudflare/templates/hello-world-with-assets/ts/vitest.config.mts +++ b/packages/create-cloudflare/templates/hello-world-with-assets/ts/vitest.config.mts @@ -1,5 +1,5 @@ import { cloudflareTest } from "@cloudflare/vitest-plugin"; -import { defineConfig } from "vite-plus"; +import { defineConfig } from "vitest/config"; export default defineConfig({ plugins: [ diff --git a/packages/create-cloudflare/templates/hello-world-workflows/js/package.json b/packages/create-cloudflare/templates/hello-world-workflows/js/package.json index 8613db47e44..0bd8945520b 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/js/package.json +++ b/packages/create-cloudflare/templates/hello-world-workflows/js/package.json @@ -5,24 +5,9 @@ "scripts": { "deploy": "wrangler deploy", "start": "wrangler dev", - "dev": "wrangler dev", - "format": "vp fmt", - "check": "vp check" + "dev": "wrangler dev" }, "devDependencies": { - "wrangler": "^4.6.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^4.6.0" } } diff --git a/packages/create-cloudflare/templates/hello-world-workflows/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-workflows/js/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/hello-world-workflows/js/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts deleted file mode 100644 index 3ec7f681770..00000000000 --- a/packages/create-cloudflare/templates/hello-world-workflows/js/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json b/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json index fa29876512e..1e481013cbc 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world-workflows/ts/package.json @@ -6,25 +6,10 @@ "deploy": "wrangler deploy", "start": "wrangler dev", "dev": "wrangler dev", - "cf-typegen": "wrangler types", - "format": "vp fmt", - "check": "wrangler types && vp check" + "cf-typegen": "wrangler types" }, "devDependencies": { "typescript": "^5.0.4", - "wrangler": "^4.6.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^4.6.0" } } diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world-workflows/ts/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/hello-world-workflows/ts/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/tsconfig.json b/packages/create-cloudflare/templates/hello-world-workflows/ts/tsconfig.json index dd6271ebf35..1d53b5cb5b9 100644 --- a/packages/create-cloudflare/templates/hello-world-workflows/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/hello-world-workflows/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "Bundler", + "moduleResolution": "node", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts deleted file mode 100644 index aa4277dc7e5..00000000000 --- a/packages/create-cloudflare/templates/hello-world-workflows/ts/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/hello-world/js/.prettierrc b/packages/create-cloudflare/templates/hello-world/js/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world/js/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/hello-world/js/package.json b/packages/create-cloudflare/templates/hello-world/js/package.json index f3ee79cba58..034aa4ea44a 100644 --- a/packages/create-cloudflare/templates/hello-world/js/package.json +++ b/packages/create-cloudflare/templates/hello-world/js/package.json @@ -6,26 +6,11 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "test": "vp test", - "format": "vp fmt", - "check": "vp check" + "test": "vitest" }, "devDependencies": { - "@cloudflare/vitest-plugin": "^1.4.10", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vite-plus": "1.4.0", - "vitest": "5.0.5", + "@cloudflare/vitest-plugin": "^1.4.3", + "vitest": "~5.0.3", "wrangler": "^4" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" } } diff --git a/packages/create-cloudflare/templates/hello-world/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world/js/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/hello-world/js/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world/js/test/index.spec.js b/packages/create-cloudflare/templates/hello-world/js/test/index.spec.js index 1b7985a7fd0..11d4fe1463e 100644 --- a/packages/create-cloudflare/templates/hello-world/js/test/index.spec.js +++ b/packages/create-cloudflare/templates/hello-world/js/test/index.spec.js @@ -4,7 +4,7 @@ import { waitOnExecutionContext, SELF, } from "cloudflare:test"; -import { describe, it, expect } from "vite-plus/test"; +import { describe, it, expect } from "vitest"; import worker from "../src"; describe("Hello World worker", () => { diff --git a/packages/create-cloudflare/templates/hello-world/js/vite.config.ts b/packages/create-cloudflare/templates/hello-world/js/vite.config.ts deleted file mode 100644 index 1c411fab4f6..00000000000 --- a/packages/create-cloudflare/templates/hello-world/js/vite.config.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { - useTabs: true, - sortPackageJson: false, - ignorePatterns: [ - "node_modules/**", - ".wrangler/**", - "dist/**", - "worker-configuration.d.ts", - ], - }, - lint: { - options: { typeAware: false, typeCheck: false }, - ignorePatterns: [ - "node_modules/**", - ".wrangler/**", - "dist/**", - "worker-configuration.d.ts", - ], - }, -}); diff --git a/packages/create-cloudflare/templates/hello-world/ts/.prettierrc b/packages/create-cloudflare/templates/hello-world/ts/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/hello-world/ts/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/hello-world/ts/package.json b/packages/create-cloudflare/templates/hello-world/ts/package.json index 004505f69e9..36b6216e237 100644 --- a/packages/create-cloudflare/templates/hello-world/ts/package.json +++ b/packages/create-cloudflare/templates/hello-world/ts/package.json @@ -6,28 +6,13 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "test": "vp test", - "cf-typegen": "wrangler types", - "format": "vp fmt", - "check": "wrangler types && vp check" + "test": "vitest", + "cf-typegen": "wrangler types" }, "devDependencies": { - "@cloudflare/vitest-plugin": "^1.4.10", + "@cloudflare/vitest-plugin": "^1.4.3", "typescript": "^5.5.2", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vite-plus": "1.4.0", - "vitest": "5.0.5", + "vitest": "~5.0.3", "wrangler": "^4" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" } } diff --git a/packages/create-cloudflare/templates/hello-world/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/hello-world/ts/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/hello-world/ts/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/hello-world/ts/test/index.spec.ts b/packages/create-cloudflare/templates/hello-world/ts/test/index.spec.ts index bf975380413..81abe3d31e8 100644 --- a/packages/create-cloudflare/templates/hello-world/ts/test/index.spec.ts +++ b/packages/create-cloudflare/templates/hello-world/ts/test/index.spec.ts @@ -4,7 +4,7 @@ import { waitOnExecutionContext, SELF, } from "cloudflare:test"; -import { describe, it, expect } from "vite-plus/test"; +import { describe, it, expect } from "vitest"; import worker from "../src/index"; // For now, you'll need to do something like this to get a correctly-typed diff --git a/packages/create-cloudflare/templates/hello-world/ts/vite.config.ts b/packages/create-cloudflare/templates/hello-world/ts/vite.config.ts deleted file mode 100644 index 7e334ad4a40..00000000000 --- a/packages/create-cloudflare/templates/hello-world/ts/vite.config.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { - useTabs: true, - sortPackageJson: false, - ignorePatterns: [ - "node_modules/**", - ".wrangler/**", - "dist/**", - "worker-configuration.d.ts", - ], - }, - lint: { - options: { typeAware: true, typeCheck: true }, - ignorePatterns: [ - "node_modules/**", - ".wrangler/**", - "dist/**", - "worker-configuration.d.ts", - ], - }, -}); diff --git a/packages/create-cloudflare/templates/hello-world/ts/vitest.config.mts b/packages/create-cloudflare/templates/hello-world/ts/vitest.config.mts index 8c5d3c38c55..195e6c06dd3 100644 --- a/packages/create-cloudflare/templates/hello-world/ts/vitest.config.mts +++ b/packages/create-cloudflare/templates/hello-world/ts/vitest.config.mts @@ -1,5 +1,5 @@ import { cloudflareTest } from "@cloudflare/vitest-plugin"; -import { defineConfig } from "vite-plus"; +import { defineConfig } from "vitest/config"; export default defineConfig({ plugins: [ diff --git a/packages/create-cloudflare/templates/openapi/ts/package.json b/packages/create-cloudflare/templates/openapi/ts/package.json index c94474544d6..b01bc40f8ed 100644 --- a/packages/create-cloudflare/templates/openapi/ts/package.json +++ b/packages/create-cloudflare/templates/openapi/ts/package.json @@ -6,9 +6,7 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "cf-typegen": "wrangler types", - "format": "vp fmt", - "check": "wrangler types && vp check" + "cf-typegen": "wrangler types" }, "dependencies": { "chanfana": "^3.3.0", @@ -18,19 +16,6 @@ "devDependencies": { "@cloudflare/workers-types": "^5.20260706.1", "@types/node": "^25.6.0", - "wrangler": "^4.81.1", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^4.81.1" } } diff --git a/packages/create-cloudflare/templates/openapi/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/openapi/ts/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/openapi/ts/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/openapi/ts/vite.config.ts b/packages/create-cloudflare/templates/openapi/ts/vite.config.ts deleted file mode 100644 index aa4277dc7e5..00000000000 --- a/packages/create-cloudflare/templates/openapi/ts/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/queues/js/.prettierrc b/packages/create-cloudflare/templates/queues/js/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/queues/js/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/queues/js/package.json b/packages/create-cloudflare/templates/queues/js/package.json index f5e23fec47b..61822a836fc 100644 --- a/packages/create-cloudflare/templates/queues/js/package.json +++ b/packages/create-cloudflare/templates/queues/js/package.json @@ -5,24 +5,9 @@ "scripts": { "deploy": "wrangler deploy", "dev": "wrangler dev", - "start": "wrangler dev", - "format": "vp fmt", - "check": "vp check" + "start": "wrangler dev" }, "devDependencies": { - "wrangler": "^3.101.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^3.101.0" } } diff --git a/packages/create-cloudflare/templates/queues/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/queues/js/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/queues/js/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/queues/js/vite.config.ts b/packages/create-cloudflare/templates/queues/js/vite.config.ts deleted file mode 100644 index 3ec7f681770..00000000000 --- a/packages/create-cloudflare/templates/queues/js/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/queues/ts/.prettierrc b/packages/create-cloudflare/templates/queues/ts/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/queues/ts/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/queues/ts/package.json b/packages/create-cloudflare/templates/queues/ts/package.json index 02d2855a0dd..0c13d8ba750 100644 --- a/packages/create-cloudflare/templates/queues/ts/package.json +++ b/packages/create-cloudflare/templates/queues/ts/package.json @@ -6,25 +6,10 @@ "deploy": "wrangler deploy", "dev": "wrangler dev", "start": "wrangler dev", - "cf-typegen": "wrangler types", - "format": "vp fmt", - "check": "wrangler types && vp check" + "cf-typegen": "wrangler types" }, "devDependencies": { "typescript": "^5.5.2", - "wrangler": "^3.101.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^3.101.0" } } diff --git a/packages/create-cloudflare/templates/queues/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/queues/ts/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/queues/ts/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/queues/ts/tsconfig.json b/packages/create-cloudflare/templates/queues/ts/tsconfig.json index b6dc5ad59dd..6841f3f15bf 100644 --- a/packages/create-cloudflare/templates/queues/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/queues/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "Bundler", + "moduleResolution": "node", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/queues/ts/vite.config.ts b/packages/create-cloudflare/templates/queues/ts/vite.config.ts deleted file mode 100644 index aa4277dc7e5..00000000000 --- a/packages/create-cloudflare/templates/queues/ts/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/scheduled/js/.prettierrc b/packages/create-cloudflare/templates/scheduled/js/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/scheduled/js/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/scheduled/js/package.json b/packages/create-cloudflare/templates/scheduled/js/package.json index 20c43701021..b813e55aede 100644 --- a/packages/create-cloudflare/templates/scheduled/js/package.json +++ b/packages/create-cloudflare/templates/scheduled/js/package.json @@ -5,24 +5,9 @@ "scripts": { "deploy": "wrangler deploy", "dev": "wrangler dev --test-scheduled", - "start": "wrangler dev --test-scheduled", - "format": "vp fmt", - "check": "vp check" + "start": "wrangler dev --test-scheduled" }, "devDependencies": { - "wrangler": "^3.101.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^3.101.0" } } diff --git a/packages/create-cloudflare/templates/scheduled/js/pnpm-workspace.yaml b/packages/create-cloudflare/templates/scheduled/js/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/scheduled/js/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/scheduled/js/vite.config.ts b/packages/create-cloudflare/templates/scheduled/js/vite.config.ts deleted file mode 100644 index 3ec7f681770..00000000000 --- a/packages/create-cloudflare/templates/scheduled/js/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: false, typeCheck: false }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/create-cloudflare/templates/scheduled/ts/.prettierrc b/packages/create-cloudflare/templates/scheduled/ts/.prettierrc new file mode 100644 index 00000000000..5c7b5d3c7a7 --- /dev/null +++ b/packages/create-cloudflare/templates/scheduled/ts/.prettierrc @@ -0,0 +1,6 @@ +{ + "printWidth": 140, + "singleQuote": true, + "semi": true, + "useTabs": true +} diff --git a/packages/create-cloudflare/templates/scheduled/ts/package.json b/packages/create-cloudflare/templates/scheduled/ts/package.json index b66080dc205..3e67c243110 100644 --- a/packages/create-cloudflare/templates/scheduled/ts/package.json +++ b/packages/create-cloudflare/templates/scheduled/ts/package.json @@ -6,25 +6,10 @@ "deploy": "wrangler deploy", "dev": "wrangler dev --test-scheduled", "start": "wrangler dev --test-scheduled", - "cf-typegen": "wrangler types", - "format": "vp fmt", - "check": "wrangler types && vp check" + "cf-typegen": "wrangler types" }, "devDependencies": { "typescript": "^5.5.2", - "wrangler": "^3.101.0", - "vite-plus": "1.4.0", - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0" - }, - "overrides": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" - }, - "engines": { - "node": "^22.18.0 || ^24.11.0 || >=26.0.0" - }, - "resolutions": { - "vite": "npm:@voidzero-dev/vite-plus-core@1.4.0", - "vitest": "5.0.5" + "wrangler": "^3.101.0" } -} +} \ No newline at end of file diff --git a/packages/create-cloudflare/templates/scheduled/ts/pnpm-workspace.yaml b/packages/create-cloudflare/templates/scheduled/ts/pnpm-workspace.yaml deleted file mode 100644 index 4d63be6ec0c..00000000000 --- a/packages/create-cloudflare/templates/scheduled/ts/pnpm-workspace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -packages: - - "." - -overrides: - vite: npm:@voidzero-dev/vite-plus-core@1.4.0 - vitest: 5.0.5 diff --git a/packages/create-cloudflare/templates/scheduled/ts/tsconfig.json b/packages/create-cloudflare/templates/scheduled/ts/tsconfig.json index b6dc5ad59dd..6841f3f15bf 100644 --- a/packages/create-cloudflare/templates/scheduled/ts/tsconfig.json +++ b/packages/create-cloudflare/templates/scheduled/ts/tsconfig.json @@ -12,7 +12,7 @@ /* Specify what module code is generated. */ "module": "es2022", /* Specify how TypeScript looks up a file from a given module specifier. */ - "moduleResolution": "Bundler", + "moduleResolution": "node", /* Enable importing .json files */ "resolveJsonModule": true, diff --git a/packages/create-cloudflare/templates/scheduled/ts/vite.config.ts b/packages/create-cloudflare/templates/scheduled/ts/vite.config.ts deleted file mode 100644 index aa4277dc7e5..00000000000 --- a/packages/create-cloudflare/templates/scheduled/ts/vite.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineConfig } from "vite-plus"; - -export default defineConfig({ - fmt: { useTabs: true, sortPackageJson: false, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, - lint: { options: { typeAware: true, typeCheck: true }, ignorePatterns: ["node_modules/**", ".wrangler/**", "dist/**", "worker-configuration.d.ts"] }, -}); diff --git a/packages/wrangler/e2e/c3-integration.test.ts b/packages/wrangler/e2e/c3-integration.test.ts index 601c54f2912..3b1e3530691 100644 --- a/packages/wrangler/e2e/c3-integration.test.ts +++ b/packages/wrangler/e2e/c3-integration.test.ts @@ -1,7 +1,6 @@ import { execSync } from "node:child_process"; import { readFileSync } from "node:fs"; import path from "node:path"; -import { overrideConfigEnv } from "@cloudflare/mock-npm-registry/config-env"; import { fetch } from "undici"; import { assert, beforeAll, describe, it } from "vitest"; import { WranglerE2ETestHelper } from "./helpers/e2e-wrangler-test"; @@ -27,9 +26,7 @@ describe.runIf(process.platform !== "win32")("c3 integration", () => { it("init project via c3", async ({ expect }) => { const env = { - // Generated projects test published dependencies independently of the SDK - // workspace's release-age policy, matching the C3 E2E harness. - ...overrideConfigEnv(process.env, { "minimum-release-age": "0" }).env, + ...process.env, WRANGLER_C3_COMMAND: `--package ${c3Packed} dlx create-cloudflare`, GIT_AUTHOR_NAME: "test-user", GIT_AUTHOR_EMAIL: "test-user@cloudflare.com", @@ -37,17 +34,16 @@ describe.runIf(process.platform !== "win32")("c3 integration", () => { GIT_COMMITTER_EMAIL: "test-user@cloudflare.com", }; - const result = await helper.run(`wrangler init ${workerName} --yes`, { + await helper.run(`wrangler init ${workerName} --yes`, { env, }); - expect(result.status).toBe(0); expect( readFileSync( path.join(helper.tmpPath, workerName, "wrangler.jsonc"), "utf8" ) - ).not.toMatch(/<[A-Z_]+>/); + ).not.toContain(""); }); it("can run `wrangler dev` on generated worker", async ({ expect }) => { diff --git a/packages/wrangler/package.json b/packages/wrangler/package.json index 49da922b723..661f19375c8 100644 --- a/packages/wrangler/package.json +++ b/packages/wrangler/package.json @@ -101,7 +101,6 @@ "@cloudflare/config": "workspace:*", "@cloudflare/containers-shared": "workspace:*", "@cloudflare/deploy-helpers": "workspace:*", - "@cloudflare/mock-npm-registry": "workspace:*", "@cloudflare/pages-functions": "workspace:*", "@cloudflare/pages-shared": "workspace:^", "@cloudflare/remote-bindings": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4aea4ba7c29..e4e6b603492 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4595,9 +4595,6 @@ importers: '@cloudflare/deploy-helpers': specifier: workspace:* version: link:../deploy-helpers - '@cloudflare/mock-npm-registry': - specifier: workspace:* - version: link:../mock-npm-registry '@cloudflare/pages-functions': specifier: workspace:* version: link:../pages-functions From eeb6c0a9d1c7d8d1ab49963bce169bbae45f9bde Mon Sep 17 00:00:00 2001 From: Brendan Irvine-Broque Date: Thu, 29 Oct 2026 16:28:55 -0700 Subject: [PATCH 7/8] fix(autoconfig): normalize framework overrides for Vite+ --- packages/autoconfig/src/details/index.ts | 1 + packages/autoconfig/src/run.ts | 8 +++-- packages/autoconfig/tests/run.test.ts | 43 +++++++++++++++++++++++- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/packages/autoconfig/src/details/index.ts b/packages/autoconfig/src/details/index.ts index 00e0b8f0b77..7efdae5473e 100644 --- a/packages/autoconfig/src/details/index.ts +++ b/packages/autoconfig/src/details/index.ts @@ -293,6 +293,7 @@ export async function getDetailsForAutoConfig({ * * @param command The detected project command * @param packageManager The package manager to use for command prefixes + * @param packageJson The optional project manifest used to detect Vite+ * @returns A runnable project command if detected, undefined otherwise */ export function getProjectCommand( diff --git a/packages/autoconfig/src/run.ts b/packages/autoconfig/src/run.ts index 1c51e84edaa..1ab9fe80e64 100644 --- a/packages/autoconfig/src/run.ts +++ b/packages/autoconfig/src/run.ts @@ -22,6 +22,7 @@ import { assertNonConfigured, confirmAutoConfigDetails, displayAutoConfigDetails, + getProjectCommand, } from "./details"; import { isFrameworkSupported, @@ -165,9 +166,12 @@ export async function runAutoConfig( } const { npx } = packageManager; - const buildCommand = + const buildCommand = getProjectCommand( dryRunConfigurationResults.buildCommandOverride ?? - autoConfigDetails.buildCommand; + autoConfigDetails.buildCommand, + packageManager, + autoConfigDetails.packageJson + ); const autoConfigSummary = await buildOperationsSummary( { ...autoConfigDetails, outputDir: autoConfigDetails.outputDir }, diff --git a/packages/autoconfig/tests/run.test.ts b/packages/autoconfig/tests/run.test.ts index 0a5b3ea2e1f..0b159dd06ee 100644 --- a/packages/autoconfig/tests/run.test.ts +++ b/packages/autoconfig/tests/run.test.ts @@ -1,6 +1,9 @@ import { existsSync, readFileSync } from "node:fs"; import * as cliPackages from "@cloudflare/cli-shared-helpers/packages"; -import { NpmPackageManager } from "@cloudflare/workers-utils"; +import { + NpmPackageManager, + PnpmPackageManager, +} from "@cloudflare/workers-utils"; import { mockConsoleMethods, runInTempDir, @@ -59,6 +62,44 @@ describe("runAutoConfig()", () => { runInTempDir(); const std = mockConsoleMethods(); + it.for([ + { packageManager: NpmPackageManager, vitePlus: true }, + { packageManager: PnpmPackageManager, vitePlus: true }, + { packageManager: NpmPackageManager, vitePlus: false }, + ])( + "uses the vinext build override with $packageManager.type and Vite+=$vitePlus", + async ({ packageManager, vitePlus }, { expect }) => { + const packageJson = { + name: "next-app", + dependencies: { next: "16.1.0" }, + devDependencies: vitePlus ? { "vite-plus": "1.4.0" } : {}, + }; + await seed({ + "package.json": JSON.stringify(packageJson), + "node_modules/next/package.json": JSON.stringify({ + name: "next", + version: "16.1.0", + }), + }); + const summary = await runAutoConfig( + { + configured: false, + projectPath: process.cwd(), + workerName: "next-app", + framework: getFrameworkClassInstance("next"), + outputDir: ".next", + buildCommand: `${packageManager.npx} next build`, + packageManager, + packageJson, + }, + { context: createMockContext(), dryRun: true } + ); + expect(summary.buildCommand).toBe( + `${packageManager.npx} ${vitePlus ? "vp" : "vite"} build` + ); + } + ); + it("rejects autoconfiguration for an unsupported framework", async ({ expect, }) => { From faa0e96b856f1847eecba6e41f0db122cf0fe325 Mon Sep 17 00:00:00 2001 From: Brendan Irvine-Broque Date: Thu, 29 Oct 2026 16:37:12 -0700 Subject: [PATCH 8/8] fix(autoconfig): preserve shell build commands during Vite+ normalization --- packages/autoconfig/src/run.ts | 15 +++++++---- packages/autoconfig/tests/run.test.ts | 38 +++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 5 deletions(-) diff --git a/packages/autoconfig/src/run.ts b/packages/autoconfig/src/run.ts index 1ab9fe80e64..6e2d1646917 100644 --- a/packages/autoconfig/src/run.ts +++ b/packages/autoconfig/src/run.ts @@ -166,12 +166,17 @@ export async function runAutoConfig( } const { npx } = packageManager; - const buildCommand = getProjectCommand( + let buildCommand = dryRunConfigurationResults.buildCommandOverride ?? - autoConfigDetails.buildCommand, - packageManager, - autoConfigDetails.packageJson - ); + autoConfigDetails.buildCommand; + // Preserve shell commands while normalizing Vite selected by framework overrides. + if (buildCommand === "vite build" || buildCommand === `${npx} vite build`) { + buildCommand = getProjectCommand( + buildCommand, + packageManager, + autoConfigDetails.packageJson + ); + } const autoConfigSummary = await buildOperationsSummary( { ...autoConfigDetails, outputDir: autoConfigDetails.outputDir }, diff --git a/packages/autoconfig/tests/run.test.ts b/packages/autoconfig/tests/run.test.ts index 0b159dd06ee..6724f6b3a8e 100644 --- a/packages/autoconfig/tests/run.test.ts +++ b/packages/autoconfig/tests/run.test.ts @@ -62,6 +62,44 @@ describe("runAutoConfig()", () => { runInTempDir(); const std = mockConsoleMethods(); + it.for([ + { vitePlus: false, override: false }, + { vitePlus: true, override: false }, + { vitePlus: false, override: true }, + { vitePlus: true, override: true }, + ])( + "preserves custom build commands with Vite+=$vitePlus and override=$override", + async ({ vitePlus, override }, { expect }) => { + const buildCommand = "echo 'built' > build.txt"; + const packageJson = { + name: "static-app", + devDependencies: vitePlus ? { "vite-plus": "1.4.0" } : {}, + }; + await seed({ "package.json": JSON.stringify(packageJson) }); + const framework = getFrameworkClassInstance("static"); + vi.spyOn(framework, "configure").mockReturnValue({ + buildTool: "wrangler", + workerConfig: {}, + buildConfig: { assetsDirectory: "public" }, + ...(override && { buildCommandOverride: buildCommand }), + }); + const summary = await runAutoConfig( + { + configured: false, + projectPath: process.cwd(), + workerName: "static-app", + framework, + outputDir: "public", + buildCommand: override ? "npm run build" : buildCommand, + packageManager: NpmPackageManager, + packageJson, + }, + { context: createMockContext(), dryRun: true } + ); + expect(summary.buildCommand).toBe(buildCommand); + } + ); + it.for([ { packageManager: NpmPackageManager, vitePlus: true }, { packageManager: PnpmPackageManager, vitePlus: true },