diff --git a/.changeset/cuddly-worms-sin.md b/.changeset/cuddly-worms-sin.md new file mode 100644 index 000000000000..d3f79742b283 --- /dev/null +++ b/.changeset/cuddly-worms-sin.md @@ -0,0 +1,5 @@ +--- +"create-cloudflare": patch +--- + +fix: update solid preview and deploy scripts to be aligned with the rest of the frameworks diff --git a/.changeset/wet-suns-own.md b/.changeset/wet-suns-own.md new file mode 100644 index 000000000000..f27fe636b904 --- /dev/null +++ b/.changeset/wet-suns-own.md @@ -0,0 +1,5 @@ +--- +"create-cloudflare": patch +--- + +fix: update solid C3 template to write an `app.config.(js/ts)` file instead of `vite.config.(js/ts)` diff --git a/packages/create-cloudflare/e2e-tests/frameworks.test.ts b/packages/create-cloudflare/e2e-tests/frameworks.test.ts index 39008aaff0c8..a5180cd6a2b1 100644 --- a/packages/create-cloudflare/e2e-tests/frameworks.test.ts +++ b/packages/create-cloudflare/e2e-tests/frameworks.test.ts @@ -220,6 +220,7 @@ const frameworkTests: Record = { ], testCommitMessage: true, timeout: LONG_TIMEOUT, + unsupportedPms: ["npm"], unsupportedOSs: ["win32"], verifyDeploy: { route: "/", diff --git a/packages/create-cloudflare/templates/solid/c3.ts b/packages/create-cloudflare/templates/solid/c3.ts index 9516a49221eb..4b264c05464a 100644 --- a/packages/create-cloudflare/templates/solid/c3.ts +++ b/packages/create-cloudflare/templates/solid/c3.ts @@ -1,7 +1,10 @@ -import { logRaw } from "@cloudflare/cli"; +import { logRaw, updateStatus } from "@cloudflare/cli"; +import { blue } from "@cloudflare/cli/colors"; +import { transformFile } from "helpers/codemod"; import { runFrameworkGenerator } from "helpers/command"; -import { compatDateFlag } from "helpers/files"; +import { compatDateFlag, usesTypescript } from "helpers/files"; import { detectPackageManager } from "helpers/packages"; +import * as recast from "recast"; import type { TemplateConfig } from "../../src/templates"; import type { C3Context } from "types"; @@ -14,26 +17,64 @@ const generate = async (ctx: C3Context) => { logRaw(""); }; +const configure = async (ctx: C3Context) => { + usesTypescript(ctx); + const filePath = `app.config.${usesTypescript(ctx) ? "ts" : "js"}`; + + updateStatus(`Updating configuration in ${blue(filePath)}`); + + transformFile(filePath, { + visitCallExpression: function (n) { + const callee = n.node.callee as recast.types.namedTypes.Identifier; + if (callee.name !== "defineConfig") { + return this.traverse(n); + } + + const b = recast.types.builders; + n.node.arguments = [ + b.objectExpression([ + b.objectProperty( + b.identifier("server"), + b.objectExpression([ + b.objectProperty( + b.identifier("preset"), + b.stringLiteral("cloudflare-pages") + ), + b.objectProperty( + b.identifier("rollupConfig"), + b.objectExpression([ + b.objectProperty( + b.identifier("external"), + b.arrayExpression([b.stringLiteral("node:async_hooks")]) + ), + ]) + ), + ]) + ), + ]), + ]; + + return false; + }, + }); +}; + const config: TemplateConfig = { configVersion: 1, id: "solid", displayName: "Solid", platform: "pages", - copyFiles: { - variants: { - js: { path: "./js" }, - ts: { path: "./ts" }, - }, - }, generate, + configure, transformPackageJson: async () => ({ scripts: { - "pages:preview": `${npm} run build && npx wrangler pages dev dist ${await compatDateFlag()} --compatibility-flag nodejs_compat`, - "pages:deploy": `${npm} run build && wrangler pages deploy ./dist`, + preview: `${npm} run build && npx wrangler pages dev dist ${await compatDateFlag()} --compatibility-flag nodejs_compat`, + deploy: `${npm} run build && wrangler pages deploy ./dist`, }, }), devScript: "dev", - previewScript: "pages:preview", + deployScript: "deploy", + previewScript: "preview", compatibilityFlags: ["nodejs_compat"], }; export default config; diff --git a/packages/create-cloudflare/templates/solid/js/vite.config.js b/packages/create-cloudflare/templates/solid/js/vite.config.js deleted file mode 100644 index 84dfd2277f70..000000000000 --- a/packages/create-cloudflare/templates/solid/js/vite.config.js +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig } from "@solidjs/start/config"; - -export default defineConfig({ - start: { - server: { - preset: "cloudflare-pages", - rollupConfig: { - external: ["node:async_hooks"] - }, - } - } -}); diff --git a/packages/create-cloudflare/templates/solid/ts/vite.config.ts b/packages/create-cloudflare/templates/solid/ts/vite.config.ts deleted file mode 100644 index 84dfd2277f70..000000000000 --- a/packages/create-cloudflare/templates/solid/ts/vite.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig } from "@solidjs/start/config"; - -export default defineConfig({ - start: { - server: { - preset: "cloudflare-pages", - rollupConfig: { - external: ["node:async_hooks"] - }, - } - } -});