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';
// 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",
"supports-esm": "^1.0.0",
"tsconfig-resolver": "^3.0.1",
"vite": "^2.9.14",
"vite": "^3.0.0",
"yargs-parser": "^21.0.1",
"zod": "^3.17.3"
},

View file

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

View file

@ -57,7 +57,7 @@ export async function collectPagesData(
'build',
`${colors.bold(
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);
}, 10000);

View file

@ -6,7 +6,7 @@ import { fileURLToPath } from 'url';
import * as vite from 'vite';
import { BuildInternals, createBuildInternals } from '../../core/build/internal.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 { rollupPluginAstroBuildCSS } from '../../vite-plugin-build-css/index.js';
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;
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.discoveredClientOnlyComponents,
...(astroConfig._ctx.renderers.map((r) => r.clientEntrypoint).filter((a) => a) as string[]),
...rendererClientEntrypoints,
...internals.discoveredScripts,
]);
@ -167,7 +169,7 @@ async function ssrBuild(opts: StaticBuildOptions, internals: BuildInternals, inp
async function clientBuild(
opts: StaticBuildOptions,
internals: BuildInternals,
input: Set<string>
input: Set<string>,
) {
const { astroConfig, viteConfig } = opts;
const timer = performance.now();

View file

@ -2,7 +2,6 @@ import type { AstroConfig } from '../@types/astro';
import type { LogOptions } from './logger/core';
import fs from 'fs';
import { builtinModules } from 'module';
import { fileURLToPath } from 'url';
import * as vite from 'vite';
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 markdownVitePlugin from '../vite-plugin-markdown/index.js';
import astroScriptsPlugin from '../vite-plugin-scripts/index.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',
]);
import { resolveDependency } from './util.js';
// note: ssr is still an experimental API hence the type omission from `vite`
export type ViteConfigWithSSR = vite.InlineConfig & { ssr?: vite.SSROptions };
@ -46,13 +24,36 @@ interface CreateViteOptions {
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 */
export async function createVite(
commandConfig: ViteConfigWithSSR,
{ astroConfig, logging, mode }: CreateViteOptions
): Promise<ViteConfigWithSSR> {
// Scan for any third-party Astro packages. Vite needs these to be passed to `ssr.noExternal`.
const astroPackages = await getAstroPackages(astroConfig);
const thirdPartyAstroPackages = await getAstroPackages(astroConfig);
// Start with the Vite configuration that Astro core needs
const commonConfig: ViteConfigWithSSR = {
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',
},
server: {
force: true, // force dependency rebuild (TODO: enabled only while next is unstable; eventually only call in "production" mode?)
hmr:
process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'production'
? false
@ -115,11 +115,12 @@ export async function createVite(
],
conditions: ['astro'],
},
// Note: SSR API is in beta (https://vitejs.dev/guide/ssr.html)
ssr: {
external: [...ALWAYS_EXTERNAL],
noExternal: [...ALWAYS_NOEXTERNAL, ...astroPackages],
},
noExternal: [
...getSsrNoExternalDeps(astroConfig.root),
...thirdPartyAstroPackages,
],
}
};
// Merge configs: we merge vite configuration objects together in the following order,
@ -131,27 +132,33 @@ export async function createVite(
let result = commonConfig;
result = vite.mergeConfig(result, astroConfig.vite || {});
result = vite.mergeConfig(result, commandConfig);
sortPlugins(result);
if (result.plugins) {
sortPlugins(result.plugins);
}
return result;
}
function getPluginName(plugin: vite.PluginOption) {
if (plugin && typeof plugin === 'object' && !Array.isArray(plugin)) {
return plugin.name;
}
function isVitePlugin(plugin: vite.PluginOption): plugin is vite.Plugin {
return Boolean(plugin?.hasOwnProperty('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
const mdxPluginIndex =
result.plugins?.findIndex((plugin) => getPluginName(plugin) === '@mdx-js/rollup') ?? -1;
const mdxPluginIndex = findPluginIndexByName(pluginOptions, '@mdx-js/rollup');
if (mdxPluginIndex === -1) return;
const jsxPluginIndex =
result.plugins?.findIndex((plugin) => getPluginName(plugin) === 'astro:jsx') ?? -1;
const mdxPlugin = result.plugins?.[mdxPluginIndex];
result.plugins?.splice(mdxPluginIndex, 1);
result.plugins?.splice(jsxPluginIndex, 0, mdxPlugin);
const jsxPluginIndex = findPluginIndexByName(pluginOptions, 'astro:jsx');
const mdxPlugin = pluginOptions[mdxPluginIndex];
pluginOptions.splice(mdxPluginIndex, 1);
pluginOptions.splice(jsxPluginIndex, 0, mdxPlugin);
}
// 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;
}
export function resolveDependency(dep: string, astroConfig: AstroConfig) {
export function resolveDependency(dep: string, projectRoot: URL) {
const resolved = resolve.sync(dep, {
basedir: fileURLToPath(astroConfig.root),
basedir: fileURLToPath(projectRoot),
});
// For Windows compat, we need a fully resolved `file://` URL string
return pathToFileURL(resolved).toString();

View file

@ -41,7 +41,7 @@ export async function trackCSSDependencies(
}
// 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) {
this.addWatchFile(dep);
}

View file

@ -67,7 +67,7 @@ export default function astro({ config, logging }: AstroPluginOptions): vite.Plu
configureServer(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) {
// If resolving from an astro subresource such as a hoisted script,
// 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'],
},
ssr: {
noExternal: ['@astrojs/image'],
noExternal: ['@astrojs/image', resolvedOptions.serviceEntryPoint],
},
};
}

View file

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

View file

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

View file

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