From b01e771125e060e7d1042f116c72cb506ad48b1d Mon Sep 17 00:00:00 2001 From: Scott Wu Date: Wed, 9 Sep 2026 11:33:45 +0800 Subject: [PATCH 1/2] use `ROOT` --- packages/sv/src/create/scripts/build-templates.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/sv/src/create/scripts/build-templates.js b/packages/sv/src/create/scripts/build-templates.js index 12beb3647..45d2b42d8 100644 --- a/packages/sv/src/create/scripts/build-templates.js +++ b/packages/sv/src/create/scripts/build-templates.js @@ -2,6 +2,7 @@ import fs from 'node:fs'; import { createRequire } from 'node:module'; import path from 'node:path'; +import * as find from 'empathic/find'; import parser from 'gitignore-parser'; import { format } from 'oxfmt'; import { transform } from 'sucrase'; @@ -9,6 +10,11 @@ import oxfmtConfig from '../../../../../oxfmt.config.ts'; /** @import { File, LanguageType } from '../index.ts' */ +const pnpmWorkspace = find.up('pnpm-workspace.yaml', { cwd: import.meta.dirname }); +if (!pnpmWorkspace) { + throw new Error("This project must have a 'pnpm-workspace.yaml' file"); +} +const ROOT = path.dirname(pnpmWorkspace); const pkgRoot = path.resolve(import.meta.dirname, '..'); const require = createRequire(import.meta.url); const createVitePath = path.dirname(require.resolve('create-vite/package.json')); @@ -94,9 +100,8 @@ async function generate_templates(dist, shared) { // to be able to develop and deploy the app from here, but have a different // package.json in newly created projects (based on package.template.json) if (name === 'package.template.json') { - const packagesDir = path.resolve(pkgRoot, '..', '..', '..'); const getVersion = (/** @type {string} */ pkgDir) => { - const pkgPath = path.join(packagesDir, pkgDir, 'package.json'); + const pkgPath = path.join(ROOT, 'packages', pkgDir, 'package.json'); return JSON.parse(fs.readFileSync(pkgPath, 'utf8')).version; }; const replaceWorkspace = ( From f453f5657950b6416b8e09d15df6b09abd9dc711 Mon Sep 17 00:00:00 2001 From: Scott Wu Date: Wed, 9 Sep 2026 11:34:10 +0800 Subject: [PATCH 2/2] no period in error messages --- packages/sv/src/create/playground.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sv/src/create/playground.ts b/packages/sv/src/create/playground.ts index 1c10f6714..e6bb37f1d 100644 --- a/packages/sv/src/create/playground.ts +++ b/packages/sv/src/create/playground.ts @@ -172,7 +172,7 @@ export function setupPlaygroundProject( installDependencies: boolean ): void { const mainFile = playground.files.find((file) => file.name === 'App.svelte'); - if (!mainFile) throw new Error('Failed to find `App.svelte` entrypoint.'); + if (!mainFile) throw new Error('Failed to find `App.svelte` entrypoint'); const dependencies = detectPlaygroundDependencies(playground.files); for (const file of playground.files) {