Migrate to Vite 3 ️ (#3570)

* Vite 3 test

* deps: bump to Vite beta.1

* refactor: move to use optimizeDeps.force option

* refactor: stub out new updateModuleInfo params

* nit: remove comment on deprecated Vite feature

* nit: remove comment on deprecated vite feature

* hail mary: destroy all ssr external / noexternal!

* fix: use new middlewareMode config settings

* fix: resolve npm package paths for rollup input

* wip: revert to unresolved. Issue reported!

* sad refactor: use legacy devDepsScanner for component HMR

* fix: add astro/components to noExternal for Code component

* refactor: use ALWAYS_NOEXTERNAL array

* refactor: add package.json to all test runners for noExternal error

* deps: bump to latest vite 3 beta

* wip: add package.json to smoke

* fix: remove accidental "force true" on create-vite

* refactor: write smoke package.json programmatically

* refactor: add fontsource to noExternal

* fix: only add to ssr.noExternal if present in project

* wip: what if we just... didn't have a memory test

* deps: bump to latest vite beta

* Revert "wip: what if we just... didn't have a memory test"

This reverts commit 173729dbdc685e52881fc3333487b8f744add55f.

* fix: add type check for plugin.name

* feat: remove legacy.devDepsScanner. Vite 3 strat is now Vite 2.x strat!

* fix: add ssr.noExternal to components ex

* wip: ignore with-mdx starter

* fix: add serviceEntryPoint to ssr.noExternal

* temp: reset NODE_ENV on prod builds

* fix: missing async tag

* VITE 3 IS STABLE BABY

* deps: bump svelte to vite 3

* deps: bump vue to vite 3

* fix: resolve plugins for proper sorting

* sad fix: regex "export default" out of CSS ssr

* chore: add TODO to understand sad fix

* Revert "fix: resolve plugins for proper sorting"

This reverts commit e67c194d3a8e11070487ed325947e7c59e8d69cd.

* Revert "sad fix: regex "export default" out of CSS ssr"

This reverts commit 721d40b62b61440dc9e488787901c915579659db.

* fix: sort plugins WITHOUT resolveConfig

* Revert "wip: ignore with-mdx starter"

This reverts commit 7d4f7338e6.

* chore: revert memory test changes

* chore: add nanostores/preact ot noexternal

* chore: changeset

* chore: changeset

* deps: use Vite ^3.0.0

* fix: add back third party astro pkg scanner

Co-authored-by: bholmesdev <hey@bholmes.dev>
This commit is contained in:
Matthew Phillips 2022-07-19 01:19:23 -04:00 committed by GitHub
parent 37534004f0
commit 04070c0c12
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 339 additions and 86 deletions

View file

@ -0,0 +1,8 @@
---
'astro': minor
'@astrojs/image': minor
'@astrojs/svelte': minor
'@astrojs/vue': minor
---
Bump to Vite 3!

View file

@ -1,4 +1,10 @@
import { defineConfig } from 'astro/config'; import { defineConfig } from 'astro/config';
// https://astro.build/config // https://astro.build/config
export default defineConfig({}); export default defineConfig({
vite: {
ssr: {
noExternal: ['@example/my-component']
},
},
});

View file

@ -136,7 +136,7 @@
"strip-ansi": "^7.0.1", "strip-ansi": "^7.0.1",
"supports-esm": "^1.0.0", "supports-esm": "^1.0.0",
"tsconfig-resolver": "^3.0.1", "tsconfig-resolver": "^3.0.1",
"vite": "^2.9.14", "vite": "^3.0.0",
"yargs-parser": "^21.0.1", "yargs-parser": "^21.0.1",
"zod": "^3.17.3" "zod": "^3.17.3"
}, },

View file

@ -73,8 +73,9 @@ class AstroBuilder {
mode: this.mode, mode: this.mode,
server: { server: {
hmr: false, hmr: false,
middlewareMode: 'ssr', middlewareMode: true,
}, },
appType: 'custom',
}, },
{ astroConfig: this.config, logging, mode: 'build' } { astroConfig: this.config, logging, mode: 'build' }
); );

View file

@ -57,7 +57,7 @@ export async function collectPagesData(
'build', 'build',
`${colors.bold( `${colors.bold(
route.component route.component
)} is taking a bit longer to import. This is common for larger "Astro.glob(...)" or "import.meta.globEager(...)" calls, for instance. Hang tight!` )} is taking a bit longer to import. This is common for larger "Astro.glob(...)" or "import.meta.glob(...)" calls, for instance. Hang tight!`
); );
clearInterval(routeCollectionLogTimeout); clearInterval(routeCollectionLogTimeout);
}, 10000); }, 10000);

View file

@ -6,7 +6,7 @@ import { fileURLToPath } from 'url';
import * as vite from 'vite'; import * as vite from 'vite';
import { BuildInternals, createBuildInternals } from '../../core/build/internal.js'; import { BuildInternals, createBuildInternals } from '../../core/build/internal.js';
import { prependForwardSlash } from '../../core/path.js'; import { prependForwardSlash } from '../../core/path.js';
import { emptyDir, removeDir } from '../../core/util.js'; import { emptyDir, removeDir, resolveDependency } from '../../core/util.js';
import { runHookBuildSetup } from '../../integrations/index.js'; import { runHookBuildSetup } from '../../integrations/index.js';
import { rollupPluginAstroBuildCSS } from '../../vite-plugin-build-css/index.js'; import { rollupPluginAstroBuildCSS } from '../../vite-plugin-build-css/index.js';
import type { ViteConfigWithSSR } from '../create-vite'; import type { ViteConfigWithSSR } from '../create-vite';
@ -67,10 +67,12 @@ export async function staticBuild(opts: StaticBuildOptions) {
const ssrResult = (await ssrBuild(opts, internals, pageInput)) as RollupOutput; const ssrResult = (await ssrBuild(opts, internals, pageInput)) as RollupOutput;
info(opts.logging, 'build', dim(`Completed in ${getTimeStat(timer.ssr, performance.now())}.`)); info(opts.logging, 'build', dim(`Completed in ${getTimeStat(timer.ssr, performance.now())}.`));
const clientInput = new Set<string>([ const rendererClientEntrypoints = opts.astroConfig._ctx.renderers.map((r) => r.clientEntrypoint).filter(a => typeof a === 'string') as string[]
const clientInput = new Set([
...internals.discoveredHydratedComponents, ...internals.discoveredHydratedComponents,
...internals.discoveredClientOnlyComponents, ...internals.discoveredClientOnlyComponents,
...(astroConfig._ctx.renderers.map((r) => r.clientEntrypoint).filter((a) => a) as string[]), ...rendererClientEntrypoints,
...internals.discoveredScripts, ...internals.discoveredScripts,
]); ]);
@ -167,7 +169,7 @@ async function ssrBuild(opts: StaticBuildOptions, internals: BuildInternals, inp
async function clientBuild( async function clientBuild(
opts: StaticBuildOptions, opts: StaticBuildOptions,
internals: BuildInternals, internals: BuildInternals,
input: Set<string> input: Set<string>,
) { ) {
const { astroConfig, viteConfig } = opts; const { astroConfig, viteConfig } = opts;
const timer = performance.now(); const timer = performance.now();

View file

@ -2,7 +2,6 @@ import type { AstroConfig } from '../@types/astro';
import type { LogOptions } from './logger/core'; import type { LogOptions } from './logger/core';
import fs from 'fs'; import fs from 'fs';
import { builtinModules } from 'module';
import { fileURLToPath } from 'url'; import { fileURLToPath } from 'url';
import * as vite from 'vite'; import * as vite from 'vite';
import astroPostprocessVitePlugin from '../vite-plugin-astro-postprocess/index.js'; import astroPostprocessVitePlugin from '../vite-plugin-astro-postprocess/index.js';
@ -14,28 +13,7 @@ import astroIntegrationsContainerPlugin from '../vite-plugin-integrations-contai
import jsxVitePlugin from '../vite-plugin-jsx/index.js'; import jsxVitePlugin from '../vite-plugin-jsx/index.js';
import markdownVitePlugin from '../vite-plugin-markdown/index.js'; import markdownVitePlugin from '../vite-plugin-markdown/index.js';
import astroScriptsPlugin from '../vite-plugin-scripts/index.js'; import astroScriptsPlugin from '../vite-plugin-scripts/index.js';
import { resolveDependency } from './util.js';
// Some packages are just external, and thats the way it goes.
const ALWAYS_EXTERNAL = new Set([
...builtinModules.map((name) => `node:${name}`),
'@sveltejs/vite-plugin-svelte',
'micromark-util-events-to-acorn',
'@astrojs/markdown-remark',
// in-lined for markdown modules
'github-slugger',
'node-fetch',
'prismjs',
'shiki',
'unified',
'whatwg-url',
]);
const ALWAYS_NOEXTERNAL = new Set([
// This is only because Vite's native ESM doesn't resolve "exports" correctly.
'astro',
// Handle recommended nanostores. Only @nanostores/preact is required from our testing!
// Full explanation and related bug report: https://github.com/withastro/astro/pull/3667
'@nanostores/preact',
]);
// note: ssr is still an experimental API hence the type omission from `vite` // note: ssr is still an experimental API hence the type omission from `vite`
export type ViteConfigWithSSR = vite.InlineConfig & { ssr?: vite.SSROptions }; export type ViteConfigWithSSR = vite.InlineConfig & { ssr?: vite.SSROptions };
@ -46,13 +24,36 @@ interface CreateViteOptions {
mode: 'dev' | 'build'; mode: 'dev' | 'build';
} }
const ALWAYS_NOEXTERNAL = new Set([
// This is only because Vite's native ESM doesn't resolve "exports" correctly.
'astro',
// Vite fails on nested `.astro` imports without bundling
'astro/components',
// Handle recommended nanostores. Only @nanostores/preact is required from our testing!
// Full explanation and related bug report: https://github.com/withastro/astro/pull/3667
'@nanostores/preact',
]);
function getSsrNoExternalDeps(projectRoot: URL): string[] {
let noExternalDeps = []
for (const dep of ALWAYS_NOEXTERNAL) {
try {
resolveDependency(dep, projectRoot)
noExternalDeps.push(dep)
} catch {
// ignore dependency if *not* installed / present in your project
// prevents hard error from Vite!
}
}
return noExternalDeps
}
/** Return a common starting point for all Vite actions */ /** Return a common starting point for all Vite actions */
export async function createVite( export async function createVite(
commandConfig: ViteConfigWithSSR, commandConfig: ViteConfigWithSSR,
{ astroConfig, logging, mode }: CreateViteOptions { astroConfig, logging, mode }: CreateViteOptions
): Promise<ViteConfigWithSSR> { ): Promise<ViteConfigWithSSR> {
// Scan for any third-party Astro packages. Vite needs these to be passed to `ssr.noExternal`. const thirdPartyAstroPackages = await getAstroPackages(astroConfig);
const astroPackages = await getAstroPackages(astroConfig);
// Start with the Vite configuration that Astro core needs // Start with the Vite configuration that Astro core needs
const commonConfig: ViteConfigWithSSR = { const commonConfig: ViteConfigWithSSR = {
cacheDir: fileURLToPath(new URL('./node_modules/.vite/', astroConfig.root)), // using local caches allows Astro to be used in monorepos, etc. cacheDir: fileURLToPath(new URL('./node_modules/.vite/', astroConfig.root)), // using local caches allows Astro to be used in monorepos, etc.
@ -82,7 +83,6 @@ export async function createVite(
'import.meta.env.SITE': astroConfig.site ? `'${astroConfig.site}'` : 'undefined', 'import.meta.env.SITE': astroConfig.site ? `'${astroConfig.site}'` : 'undefined',
}, },
server: { server: {
force: true, // force dependency rebuild (TODO: enabled only while next is unstable; eventually only call in "production" mode?)
hmr: hmr:
process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'production' process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'production'
? false ? false
@ -115,11 +115,12 @@ export async function createVite(
], ],
conditions: ['astro'], conditions: ['astro'],
}, },
// Note: SSR API is in beta (https://vitejs.dev/guide/ssr.html)
ssr: { ssr: {
external: [...ALWAYS_EXTERNAL], noExternal: [
noExternal: [...ALWAYS_NOEXTERNAL, ...astroPackages], ...getSsrNoExternalDeps(astroConfig.root),
}, ...thirdPartyAstroPackages,
],
}
}; };
// Merge configs: we merge vite configuration objects together in the following order, // Merge configs: we merge vite configuration objects together in the following order,
@ -131,27 +132,33 @@ export async function createVite(
let result = commonConfig; let result = commonConfig;
result = vite.mergeConfig(result, astroConfig.vite || {}); result = vite.mergeConfig(result, astroConfig.vite || {});
result = vite.mergeConfig(result, commandConfig); result = vite.mergeConfig(result, commandConfig);
sortPlugins(result); if (result.plugins) {
sortPlugins(result.plugins);
}
return result; return result;
} }
function getPluginName(plugin: vite.PluginOption) { function isVitePlugin(plugin: vite.PluginOption): plugin is vite.Plugin {
if (plugin && typeof plugin === 'object' && !Array.isArray(plugin)) { return Boolean(plugin?.hasOwnProperty('name'));
return plugin.name;
}
} }
function sortPlugins(result: ViteConfigWithSSR) { function findPluginIndexByName(pluginOptions: vite.PluginOption[], name: string): number {
return pluginOptions.findIndex(function (pluginOption) {
// Use isVitePlugin to ignore nulls, booleans, promises, and arrays
// CAUTION: could be a problem if a plugin we're searching for becomes async!
return isVitePlugin(pluginOption) && pluginOption.name === name
})
}
function sortPlugins(pluginOptions: vite.PluginOption[]) {
// HACK: move mdxPlugin to top because it needs to run before internal JSX plugin // HACK: move mdxPlugin to top because it needs to run before internal JSX plugin
const mdxPluginIndex = const mdxPluginIndex = findPluginIndexByName(pluginOptions, '@mdx-js/rollup');
result.plugins?.findIndex((plugin) => getPluginName(plugin) === '@mdx-js/rollup') ?? -1;
if (mdxPluginIndex === -1) return; if (mdxPluginIndex === -1) return;
const jsxPluginIndex = const jsxPluginIndex = findPluginIndexByName(pluginOptions, 'astro:jsx');
result.plugins?.findIndex((plugin) => getPluginName(plugin) === 'astro:jsx') ?? -1; const mdxPlugin = pluginOptions[mdxPluginIndex];
const mdxPlugin = result.plugins?.[mdxPluginIndex]; pluginOptions.splice(mdxPluginIndex, 1);
result.plugins?.splice(mdxPluginIndex, 1); pluginOptions.splice(jsxPluginIndex, 0, mdxPlugin);
result.plugins?.splice(jsxPluginIndex, 0, mdxPlugin);
} }
// Scans `projectRoot` for third-party Astro packages that could export an `.astro` file // Scans `projectRoot` for third-party Astro packages that could export an `.astro` file

View file

@ -105,9 +105,9 @@ export function codeFrame(src: string, loc: ErrorPayload['err']['loc']): string
return output; return output;
} }
export function resolveDependency(dep: string, astroConfig: AstroConfig) { export function resolveDependency(dep: string, projectRoot: URL) {
const resolved = resolve.sync(dep, { const resolved = resolve.sync(dep, {
basedir: fileURLToPath(astroConfig.root), basedir: fileURLToPath(projectRoot),
}); });
// For Windows compat, we need a fully resolved `file://` URL string // For Windows compat, we need a fully resolved `file://` URL string
return pathToFileURL(resolved).toString(); return pathToFileURL(resolved).toString();

View file

@ -41,7 +41,7 @@ export async function trackCSSDependencies(
} }
// Update the module graph, telling it about our CSS deps. // Update the module graph, telling it about our CSS deps.
moduleGraph.updateModuleInfo(mod, depModules, new Set(), true); moduleGraph.updateModuleInfo(mod, depModules, new Map(), new Set(), new Set(), true);
for (const dep of cssDeps) { for (const dep of cssDeps) {
this.addWatchFile(dep); this.addWatchFile(dep);
} }

View file

@ -67,7 +67,7 @@ export default function astro({ config, logging }: AstroPluginOptions): vite.Plu
configureServer(server) { configureServer(server) {
viteDevServer = server; viteDevServer = server;
}, },
// note: dont claim .astro files with resolveId() — it prevents Vite from transpiling the final JS (import.meta.globEager, etc.) // note: dont claim .astro files with resolveId() — it prevents Vite from transpiling the final JS (import.meta.glob, etc.)
async resolveId(id, from, opts) { async resolveId(id, from, opts) {
// If resolving from an astro subresource such as a hoisted script, // If resolving from an astro subresource such as a hoisted script,
// we need to resolve relative paths ourselves. // we need to resolve relative paths ourselves.

View file

@ -0,0 +1,8 @@
{
"name": "@test/api-routes",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/astro-response",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/config-vite",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,13 @@
import { defineConfig } from 'astro/config';
// https://astro.build/config
export default defineConfig({
vite: {
ssr: {
noExternal: [
'@fontsource/montserrat',
'@fontsource/monofett',
]
}
}
});

View file

@ -0,0 +1,8 @@
{
"name": "@test/hmr-css",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/import-ts-with-js",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/page-level-styles",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/ssr-api-route",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/ssr-assets",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/ssr-dynamic",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/ssr-hoisted-script",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/ssr-request",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/ssr-response",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/status-code",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/type-imports",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -0,0 +1,8 @@
{
"name": "@test/unused-slot",
"version": "0.0.0",
"private": true,
"dependencies": {
"astro": "workspace:*"
}
}

View file

@ -34,7 +34,7 @@ const createIntegration = (options: IntegrationOptions = {}): AstroIntegration =
include: ['image-size', 'sharp'], include: ['image-size', 'sharp'],
}, },
ssr: { ssr: {
noExternal: ['@astrojs/image'], noExternal: ['@astrojs/image', resolvedOptions.serviceEntryPoint],
}, },
}; };
} }

View file

@ -33,11 +33,11 @@
"dev": "astro-scripts dev \"src/**/*.ts\"" "dev": "astro-scripts dev \"src/**/*.ts\""
}, },
"dependencies": { "dependencies": {
"@sveltejs/vite-plugin-svelte": "^1.0.0-next.48", "@sveltejs/vite-plugin-svelte": "^1.0.1",
"postcss-load-config": "^3.1.4", "postcss-load-config": "^3.1.4",
"svelte-preprocess": "^4.10.7", "svelte-preprocess": "^4.10.7",
"svelte2tsx": "^0.5.11", "svelte2tsx": "^0.5.11",
"vite": "^2.9.10" "vite": "^3.0.0"
}, },
"devDependencies": { "devDependencies": {
"astro": "workspace:*", "astro": "workspace:*",

View file

@ -33,8 +33,8 @@
"dev": "astro-scripts dev \"src/**/*.ts\"" "dev": "astro-scripts dev \"src/**/*.ts\""
}, },
"dependencies": { "dependencies": {
"@vitejs/plugin-vue": "^2.3.3", "@vitejs/plugin-vue": "^3.0.0",
"vite": "^2.9.10" "vite": "^3.0.0"
}, },
"devDependencies": { "devDependencies": {
"astro": "workspace:*", "astro": "workspace:*",

View file

@ -546,7 +546,7 @@ importers:
strip-ansi: ^7.0.1 strip-ansi: ^7.0.1
supports-esm: ^1.0.0 supports-esm: ^1.0.0
tsconfig-resolver: ^3.0.1 tsconfig-resolver: ^3.0.1
vite: ^2.9.14 vite: ^3.0.0
yargs-parser: ^21.0.1 yargs-parser: ^21.0.1
zod: ^3.17.3 zod: ^3.17.3
dependencies: dependencies:
@ -604,7 +604,7 @@ importers:
strip-ansi: 7.0.1 strip-ansi: 7.0.1
supports-esm: 1.0.0 supports-esm: 1.0.0
tsconfig-resolver: 3.0.1 tsconfig-resolver: 3.0.1
vite: 2.9.14_sass@1.53.0 vite: 3.0.0_sass@1.53.0
yargs-parser: 21.0.1 yargs-parser: 21.0.1
zod: 3.17.3 zod: 3.17.3
devDependencies: devDependencies:
@ -1055,6 +1055,12 @@ importers:
'@astrojs/svelte': link:../../../../integrations/svelte '@astrojs/svelte': link:../../../../integrations/svelte
astro: link:../../.. astro: link:../../..
packages/astro/test/fixtures/api-routes:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/astro pages: packages/astro/test/fixtures/astro pages:
specifiers: specifiers:
astro: workspace:* astro: workspace:*
@ -1341,6 +1347,12 @@ importers:
dependencies: dependencies:
astro: link:../../.. astro: link:../../..
packages/astro/test/fixtures/astro-response:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/astro-scripts: packages/astro/test/fixtures/astro-scripts:
specifiers: specifiers:
astro: workspace:* astro: workspace:*
@ -1401,6 +1413,12 @@ importers:
dependencies: dependencies:
astro: link:../../.. astro: link:../../..
packages/astro/test/fixtures/config-vite:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/css-assets: packages/astro/test/fixtures/css-assets:
specifiers: specifiers:
'@astrojs/test-font-awesome-package': file:packages/font-awesome '@astrojs/test-font-awesome-package': file:packages/font-awesome
@ -1505,6 +1523,18 @@ importers:
'@fontsource/montserrat': 4.5.11 '@fontsource/montserrat': 4.5.11
astro: link:../../.. astro: link:../../..
packages/astro/test/fixtures/hmr-css:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/import-ts-with-js:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/integration-add-page-extension: packages/astro/test/fixtures/integration-add-page-extension:
specifiers: specifiers:
astro: workspace:* astro: workspace:*
@ -1574,6 +1604,12 @@ importers:
'@astrojs/preact': link:../../../../integrations/preact '@astrojs/preact': link:../../../../integrations/preact
astro: link:../../.. astro: link:../../..
packages/astro/test/fixtures/page-level-styles:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/postcss: packages/astro/test/fixtures/postcss:
specifiers: specifiers:
'@astrojs/solid-js': workspace:* '@astrojs/solid-js': workspace:*
@ -1703,6 +1739,24 @@ importers:
'@astrojs/solid-js': link:../../../../integrations/solid '@astrojs/solid-js': link:../../../../integrations/solid
astro: link:../../.. astro: link:../../..
packages/astro/test/fixtures/ssr-api-route:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/ssr-assets:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/ssr-dynamic:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/ssr-env: packages/astro/test/fixtures/ssr-env:
specifiers: specifiers:
'@astrojs/preact': workspace:* '@astrojs/preact': workspace:*
@ -1711,6 +1765,12 @@ importers:
'@astrojs/preact': link:../../../../integrations/preact '@astrojs/preact': link:../../../../integrations/preact
astro: link:../../.. astro: link:../../..
packages/astro/test/fixtures/ssr-hoisted-script:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/ssr-markdown: packages/astro/test/fixtures/ssr-markdown:
specifiers: specifiers:
astro: workspace:* astro: workspace:*
@ -1731,6 +1791,18 @@ importers:
dependencies: dependencies:
astro: link:../../.. astro: link:../../..
packages/astro/test/fixtures/ssr-request:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/ssr-response:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/ssr-scripts: packages/astro/test/fixtures/ssr-scripts:
specifiers: specifiers:
'@astrojs/preact': 'workspace:' '@astrojs/preact': 'workspace:'
@ -1794,6 +1866,12 @@ importers:
packages/astro/test/fixtures/static-build/pkg: packages/astro/test/fixtures/static-build/pkg:
specifiers: {} specifiers: {}
packages/astro/test/fixtures/status-code:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/streaming: packages/astro/test/fixtures/streaming:
specifiers: specifiers:
astro: workspace:* astro: workspace:*
@ -1822,6 +1900,18 @@ importers:
postcss: 8.4.14 postcss: 8.4.14
tailwindcss: 3.1.5 tailwindcss: 3.1.5
packages/astro/test/fixtures/type-imports:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/unused-slot:
specifiers:
astro: workspace:*
dependencies:
astro: link:../../..
packages/astro/test/fixtures/virtual-astro-file: packages/astro/test/fixtures/virtual-astro-file:
specifiers: specifiers:
astro: workspace:* astro: workspace:*
@ -2190,20 +2280,20 @@ importers:
packages/integrations/svelte: packages/integrations/svelte:
specifiers: specifiers:
'@sveltejs/vite-plugin-svelte': ^1.0.0-next.48 '@sveltejs/vite-plugin-svelte': ^1.0.1
astro: workspace:* astro: workspace:*
astro-scripts: workspace:* astro-scripts: workspace:*
postcss-load-config: ^3.1.4 postcss-load-config: ^3.1.4
svelte: ^3.48.0 svelte: ^3.48.0
svelte-preprocess: ^4.10.7 svelte-preprocess: ^4.10.7
svelte2tsx: ^0.5.11 svelte2tsx: ^0.5.11
vite: ^2.9.10 vite: ^3.0.0
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte': 1.0.0-next.49_svelte@3.49.0+vite@2.9.14 '@sveltejs/vite-plugin-svelte': 1.0.1_svelte@3.49.0+vite@3.0.0
postcss-load-config: 3.1.4 postcss-load-config: 3.1.4
svelte-preprocess: 4.10.7_k3vaqsyrx2lfvza3vdeafxime4 svelte-preprocess: 4.10.7_k3vaqsyrx2lfvza3vdeafxime4
svelte2tsx: 0.5.11_svelte@3.49.0 svelte2tsx: 0.5.11_svelte@3.49.0
vite: 2.9.14 vite: 3.0.0
devDependencies: devDependencies:
astro: link:../../astro astro: link:../../astro
astro-scripts: link:../../../scripts astro-scripts: link:../../../scripts
@ -2252,14 +2342,14 @@ importers:
packages/integrations/vue: packages/integrations/vue:
specifiers: specifiers:
'@vitejs/plugin-vue': ^2.3.3 '@vitejs/plugin-vue': ^3.0.0
astro: workspace:* astro: workspace:*
astro-scripts: workspace:* astro-scripts: workspace:*
vite: ^2.9.10 vite: ^3.0.0
vue: ^3.2.37 vue: ^3.2.37
dependencies: dependencies:
'@vitejs/plugin-vue': 2.3.3_vite@2.9.14+vue@3.2.37 '@vitejs/plugin-vue': 3.0.0_vite@3.0.0+vue@3.2.37
vite: 2.9.14 vite: 3.0.0
devDependencies: devDependencies:
astro: link:../../astro astro: link:../../astro
astro-scripts: link:../../../scripts astro-scripts: link:../../../scripts
@ -7769,13 +7859,13 @@ packages:
string.prototype.matchall: 4.0.7 string.prototype.matchall: 4.0.7
dev: true dev: true
/@sveltejs/vite-plugin-svelte/1.0.0-next.49_svelte@3.49.0+vite@2.9.14: /@sveltejs/vite-plugin-svelte/1.0.1_svelte@3.49.0+vite@3.0.0:
resolution: {integrity: sha512-AKh0Ka8EDgidnxWUs8Hh2iZLZovkETkefO99XxZ4sW4WGJ7VFeBx5kH/NIIGlaNHLcrIvK3CK0HkZwC3Cici0A==} resolution: {integrity: sha512-PorCgUounn0VXcpeJu+hOweZODKmGuLHsLomwqSj+p26IwjjGffmYQfVHtiTWq+NqaUuuHWWG7vPge6UFw4Aeg==}
engines: {node: ^14.13.1 || >= 16} engines: {node: ^14.18.0 || >= 16}
peerDependencies: peerDependencies:
diff-match-patch: ^1.0.5 diff-match-patch: ^1.0.5
svelte: ^3.44.0 svelte: ^3.44.0
vite: ^2.9.0 vite: ^3.0.0
peerDependenciesMeta: peerDependenciesMeta:
diff-match-patch: diff-match-patch:
optional: true optional: true
@ -7789,7 +7879,7 @@ packages:
magic-string: 0.26.2 magic-string: 0.26.2
svelte: 3.49.0 svelte: 3.49.0
svelte-hmr: 0.14.12_svelte@3.49.0 svelte-hmr: 0.14.12_svelte@3.49.0
vite: 2.9.14 vite: 3.0.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false dev: false
@ -8375,17 +8465,17 @@ packages:
- supports-color - supports-color
dev: false dev: false
/@vitejs/plugin-vue/2.3.3_vite@2.9.14+vue@3.2.37: /@vitejs/plugin-vue/3.0.0_vite@3.0.0+vue@3.2.37:
resolution: {integrity: sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==} resolution: {integrity: sha512-yWP34ArFh/jAeNUDkkLz/kVRLjf5ppJiq4L36f64Cp6dIrMQeYZGDP9xxdemlXfZR9ylN9JgHUl3GzfqOtgYDg==}
engines: {node: '>=12.0.0'} engines: {node: '>=14.18.0'}
peerDependencies: peerDependencies:
vite: ^2.5.10 vite: ^3.0.0
vue: ^3.2.25 vue: ^3.2.25
peerDependenciesMeta: peerDependenciesMeta:
vite: vite:
optional: true optional: true
dependencies: dependencies:
vite: 2.9.14 vite: 3.0.0
vue: 3.2.37 vue: 3.2.37
dev: false dev: false
@ -15396,14 +15486,15 @@ packages:
- supports-color - supports-color
dev: true dev: true
/vite/2.9.14: /vite/3.0.0:
resolution: {integrity: sha512-P/UCjSpSMcE54r4mPak55hWAZPlyfS369svib/gpmz8/01L822lMPOJ/RYW6tLCe1RPvMvOsJ17erf55bKp4Hw==} resolution: {integrity: sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==}
engines: {node: '>=12.2.0'} engines: {node: '>=14.18.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
less: '*' less: '*'
sass: '*' sass: '*'
stylus: '*' stylus: '*'
terser: ^5.4.0
peerDependenciesMeta: peerDependenciesMeta:
less: less:
optional: true optional: true
@ -15411,6 +15502,8 @@ packages:
optional: true optional: true
stylus: stylus:
optional: true optional: true
terser:
optional: true
dependencies: dependencies:
esbuild: 0.14.48 esbuild: 0.14.48
postcss: 8.4.14 postcss: 8.4.14
@ -15420,14 +15513,15 @@ packages:
fsevents: 2.3.2 fsevents: 2.3.2
dev: false dev: false
/vite/2.9.14_sass@1.53.0: /vite/3.0.0_sass@1.53.0:
resolution: {integrity: sha512-P/UCjSpSMcE54r4mPak55hWAZPlyfS369svib/gpmz8/01L822lMPOJ/RYW6tLCe1RPvMvOsJ17erf55bKp4Hw==} resolution: {integrity: sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==}
engines: {node: '>=12.2.0'} engines: {node: '>=14.18.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
less: '*' less: '*'
sass: '*' sass: '*'
stylus: '*' stylus: '*'
terser: ^5.4.0
peerDependenciesMeta: peerDependenciesMeta:
less: less:
optional: true optional: true
@ -15435,6 +15529,8 @@ packages:
optional: true optional: true
stylus: stylus:
optional: true optional: true
terser:
optional: true
dependencies: dependencies:
esbuild: 0.14.48 esbuild: 0.14.48
postcss: 8.4.14 postcss: 8.4.14