Skip to content

Commit

Permalink
fix loading of conditional Vite configs (sveltejs#5372)
Browse files Browse the repository at this point in the history
  • Loading branch information
Conduitry committed Jul 6, 2022
1 parent 4842a24 commit cd47263
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 21 deletions.
15 changes: 11 additions & 4 deletions packages/kit/src/vite/build/build_server.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import fs from 'fs';
import path from 'path';
import { mkdirp, posixify } from '../../utils/filesystem.js';
import { get_vite_config, merge_vite_configs, resolve_entry } from '../utils.js';
import { merge_vite_configs, resolve_entry } from '../utils.js';
import { load_template } from '../../core/config/index.js';
import { get_runtime_path } from '../../core/utils.js';
import { create_build, find_deps, get_default_config, remove_svelte_kit } from './utils.js';
Expand Down Expand Up @@ -107,6 +107,7 @@ export class Server {
* @param {{
* cwd: string;
* config: import('types').ValidatedConfig
* vite_config: import('vite').UserConfig
* manifest_data: import('types').ManifestData
* build_dir: string;
* output_dir: string;
Expand All @@ -115,7 +116,15 @@ export class Server {
* @param {{ vite_manifest: import('vite').Manifest, assets: import('rollup').OutputAsset[] }} client
*/
export async function build_server(options, client) {
const { cwd, config, manifest_data, build_dir, output_dir, service_worker_entry_file } = options;
const {
cwd,
config,
vite_config,
manifest_data,
build_dir,
output_dir,
service_worker_entry_file
} = options;

let hooks_file = resolve_entry(config.kit.files.hooks);
if (!hooks_file || !fs.existsSync(hooks_file)) {
Expand Down Expand Up @@ -174,8 +183,6 @@ export async function build_server(options, client) {
})
);

const vite_config = await get_vite_config();

const merged_config = merge_vite_configs(
get_default_config({ config, input, ssr: true, outDir: `${output_dir}/server` }),
vite_config
Expand Down
6 changes: 3 additions & 3 deletions packages/kit/src/vite/build/build_service_worker.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import fs from 'fs';
import * as vite from 'vite';
import { s } from '../../utils/misc.js';
import { get_vite_config, merge_vite_configs } from '../utils.js';
import { merge_vite_configs } from '../utils.js';
import { normalize_path } from '../../utils/url.js';
import { assets_base, remove_svelte_kit } from './utils.js';

/**
* @param {{
* config: import('types').ValidatedConfig;
* vite_config: import('vite').UserConfig;
* manifest_data: import('types').ManifestData;
* output_dir: string;
* service_worker_entry_file: string | null;
Expand All @@ -16,7 +17,7 @@ import { assets_base, remove_svelte_kit } from './utils.js';
* @param {import('vite').Manifest} client_manifest
*/
export async function build_service_worker(
{ config, manifest_data, output_dir, service_worker_entry_file },
{ config, vite_config, manifest_data, output_dir, service_worker_entry_file },
prerendered,
client_manifest
) {
Expand Down Expand Up @@ -65,7 +66,6 @@ export async function build_service_worker(
.trim()
);

const vite_config = await get_vite_config();
const merged_config = merge_vite_configs(vite_config, {
base: assets_base(config.kit),
build: {
Expand Down
1 change: 1 addition & 0 deletions packages/kit/src/vite/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,7 @@ function kit() {
const options = {
cwd,
config: svelte_config,
vite_config,
build_dir: paths.build_dir, // TODO just pass `paths`
manifest_data,
output_dir: paths.output_dir,
Expand Down
14 changes: 0 additions & 14 deletions packages/kit/src/vite/utils.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,7 @@
import fs from 'fs';
import path from 'path';
import { pathToFileURL } from 'url';
import { get_runtime_path } from '../core/utils.js';

/**
* @return {Promise<import('vite').UserConfig>}
*/
export async function get_vite_config() {
for (const file of ['vite.config.js', 'vite.config.mjs', 'vite.config.cjs']) {
if (fs.existsSync(file)) {
const config = await import(pathToFileURL(file).toString());
return config.default || config;
}
}
throw new Error('Could not find vite.config.js');
}

/**
* @param {...import('vite').UserConfig} configs
* @returns {import('vite').UserConfig}
Expand Down

0 comments on commit cd47263

Please sign in to comment.