Skip to content

Commit 0679801

Browse files
authored
chore: use peer dependencies rather than dev dependencies (#11433)
* chore: use peer dependencies rather than dev dependencies * changeset * move to dependencies --------- Co-authored-by: Rich Harris <rich.harris@vercel.com>
1 parent 1a1e786 commit 0679801

File tree

4 files changed

+29
-5
lines changed

4 files changed

+29
-5
lines changed

.changeset/smart-timers-promise.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/kit': patch
3+
---
4+
5+
chore: use peer dependencies when linked

packages/kit/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"cookie": "^0.6.0",
1616
"devalue": "^4.3.2",
1717
"esm-env": "^1.0.0",
18+
"import-meta-resolve": "^4.0.0",
1819
"kleur": "^4.1.5",
1920
"magic-string": "^0.30.5",
2021
"mrmime": "^2.0.0",

packages/kit/src/exports/vite/index.js

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import fs from 'node:fs';
22
import path from 'node:path';
33

4-
import { svelte } from '@sveltejs/vite-plugin-svelte';
4+
import * as imr from 'import-meta-resolve';
55
import colors from 'kleur';
6-
import * as vite from 'vite';
76

87
import { copy, mkdirp, posixify, read, resolve_entry, rimraf } from '../../utils/filesystem.js';
98
import { create_static_module, create_dynamic_module } from '../../core/env.js';
@@ -34,6 +33,7 @@ import {
3433
sveltekit_environment,
3534
sveltekit_paths
3635
} from './module_ids.js';
36+
import { pathToFileURL } from 'node:url';
3737

3838
const cwd = process.cwd();
3939

@@ -122,6 +122,17 @@ const warning_preprocessor = {
122122
}
123123
};
124124

125+
/**
126+
* Resolve a dependency relative to the current working directory,
127+
* rather than relative to this package
128+
* @param {string} dependency
129+
*/
130+
async function resolve_peer_dependency(dependency) {
131+
// @ts-expect-error the types are wrong
132+
const resolved = await imr.resolve(dependency, pathToFileURL(process.cwd() + '/dummy.js'));
133+
return import(resolved);
134+
}
135+
125136
/**
126137
* Returns the SvelteKit Vite plugins.
127138
* @returns {Promise<import('vite').Plugin[]>}
@@ -153,7 +164,9 @@ export async function sveltekit() {
153164
...svelte_config.vitePlugin
154165
};
155166

156-
return [...svelte(vite_plugin_svelte_options), ...kit({ svelte_config })];
167+
const { svelte } = await resolve_peer_dependency('@sveltejs/vite-plugin-svelte');
168+
169+
return [...svelte(vite_plugin_svelte_options), ...(await kit({ svelte_config }))];
157170
}
158171

159172
// These variables live outside the `kit()` function because it is re-invoked by each Vite build
@@ -174,9 +187,11 @@ let manifest_data;
174187
* - https://rollupjs.org/guide/en/#output-generation-hooks
175188
*
176189
* @param {{ svelte_config: import('types').ValidatedConfig }} options
177-
* @return {import('vite').Plugin[]}
190+
* @return {Promise<import('vite').Plugin[]>}
178191
*/
179-
function kit({ svelte_config }) {
192+
async function kit({ svelte_config }) {
193+
const vite = await resolve_peer_dependency('vite');
194+
180195
const { kit } = svelte_config;
181196
const out = `${kit.outDir}/output`;
182197

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)