From 99079dc494745808c52dfaf06a2735376058a2d6 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 30 Mar 2022 20:32:09 +0100 Subject: [PATCH 1/4] chore(vite): upgrade to vite 2.9.0 --- package.json | 4 ++-- packages/bridge/package.json | 4 ++-- packages/bridge/src/vite/vite.ts | 11 ---------- packages/test-utils/package.json | 2 +- packages/vite/package.json | 8 +++---- packages/vite/src/utils/warmup.ts | 20 ----------------- packages/vite/src/vite.ts | 8 +------ yarn.lock | 36 +++++++++++++++---------------- 8 files changed, 28 insertions(+), 65 deletions(-) delete mode 100644 packages/vite/src/utils/warmup.ts diff --git a/package.json b/package.json index 175f1669c58..9ff10c2b7cd 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "jiti": "^1.13.0", "nitropack-dev": "link:../nitropack", "nuxt3": "workspace:./packages/nuxt3", - "vite": "^2.8.6", + "vite": "^2.9.0", "unbuild": "^0.7.2" }, "devDependencies": { @@ -55,7 +55,7 @@ "pathe": "^0.2.0", "typescript": "^4.6.3", "unbuild": "^0.7.2", - "vitest": "^0.8.0", + "vitest": "^0.8.1", "vue-router": "^4.0.14", "vue-tsc": "^0.33.9" }, diff --git a/packages/bridge/package.json b/packages/bridge/package.json index 824805abe4e..f4edaa5db44 100644 --- a/packages/bridge/package.json +++ b/packages/bridge/package.json @@ -25,7 +25,7 @@ "@nuxt/nitro": "3.0.0", "@nuxt/postcss8": "^1.1.3", "@nuxt/schema": "3.0.0", - "@vitejs/plugin-legacy": "^1.7.1", + "@vitejs/plugin-legacy": "^1.8.0", "@vue/composition-api": "^1.4.9", "@vueuse/head": "^0.7.5", "acorn": "^8.7.0", @@ -61,7 +61,7 @@ "unplugin": "^0.6.0", "unplugin-vue2-script-setup": "^0.10.1", "untyped": "^0.4.3", - "vite": "^2.8.6", + "vite": "^2.9.0", "vite-plugin-vue2": "^1.9.3", "vue-template-compiler": "^2.6.14" }, diff --git a/packages/bridge/src/vite/vite.ts b/packages/bridge/src/vite/vite.ts index 1ec626dc309..ab26acfe7a5 100644 --- a/packages/bridge/src/vite/vite.ts +++ b/packages/bridge/src/vite/vite.ts @@ -1,9 +1,7 @@ import { resolve } from 'pathe' import * as vite from 'vite' -import { logger } from '@nuxt/kit' import { withoutLeadingSlash } from 'ufo' import { distDir } from '../dirs' -import { warmupViteServer } from '../../../vite/src/utils/warmup' import { buildClient } from './client' import { buildServer } from './server' import { defaultExportPlugin } from './plugins/default-export' @@ -89,15 +87,6 @@ async function bundle (nuxt: Nuxt, builder: any) { await ctx.nuxt.callHook('vite:extend', ctx) - if (nuxt.options.dev) { - ctx.nuxt.hook('vite:serverCreated', (server: vite.ViteDevServer) => { - const start = Date.now() - warmupViteServer(server, ['/.nuxt/entry.mjs']).then(() => { - logger.info(`Vite warmed up in ${Date.now() - start}ms`) - }).catch(logger.error) - }) - } - await buildClient(ctx) await prepareManifests(ctx) await buildServer(ctx) diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 80820d80e91..3e5e62123c0 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -24,7 +24,7 @@ "devDependencies": { "playwright": "^1.20.1", "unbuild": "latest", - "vitest": "^0.8.0" + "vitest": "^0.8.1" }, "peerDependencies": { "vue": "3.2.31" diff --git a/packages/vite/package.json b/packages/vite/package.json index 40a2ebabbb8..c13ad92d35c 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -20,8 +20,8 @@ }, "dependencies": { "@nuxt/kit": "3.0.0", - "@vitejs/plugin-vue": "^2.2.4", - "@vitejs/plugin-vue-jsx": "^1.3.8", + "@vitejs/plugin-vue": "^2.3.1", + "@vitejs/plugin-vue-jsx": "^1.3.9", "autoprefixer": "^10.4.4", "chokidar": "^3.5.3", "cssnano": "^5.1.5", @@ -43,8 +43,8 @@ "rollup-plugin-visualizer": "^5.6.0", "ufo": "^0.8.1", "unplugin": "^0.6.0", - "vite": "^2.8.6", - "vite-node": "^0.8.0" + "vite": "^2.9.0", + "vite-node": "^0.8.1" }, "peerDependencies": { "vue": "3.2.31" diff --git a/packages/vite/src/utils/warmup.ts b/packages/vite/src/utils/warmup.ts deleted file mode 100644 index cda761e6e0d..00000000000 --- a/packages/vite/src/utils/warmup.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { logger } from '@nuxt/kit' -import type { ViteDevServer } from 'vite' - -export async function warmupViteServer (server: ViteDevServer, entries: string[]) { - const warmedUrls = new Set() - - const warmup = async (url: string) => { - if (warmedUrls.has(url)) { return undefined } - warmedUrls.add(url) - try { - await server.transformRequest(url) - } catch (e) { - logger.debug('Warmup for %s failed with: %s', url, e) - } - const deps = Array.from(server.moduleGraph.urlToModuleMap.get(url)?.importedModules || []) - await Promise.all(deps.map(m => warmup(m.url))) - } - - await Promise.all(entries.map(entry => warmup(entry))) -} diff --git a/packages/vite/src/vite.ts b/packages/vite/src/vite.ts index e41c21913b3..de44ce90926 100644 --- a/packages/vite/src/vite.ts +++ b/packages/vite/src/vite.ts @@ -2,14 +2,13 @@ import * as vite from 'vite' import { resolve } from 'pathe' import type { Nuxt } from '@nuxt/schema' import type { InlineConfig, SSROptions } from 'vite' -import { logger, isIgnored } from '@nuxt/kit' +import { isIgnored } from '@nuxt/kit' import type { Options } from '@vitejs/plugin-vue' import { sanitizeFilePath } from 'mlly' import { getPort } from 'get-port-please' import { buildClient } from './client' import { buildServer } from './server' import virtual from './plugins/virtual' -import { warmupViteServer } from './utils/warmup' import { resolveCSSOptions } from './css' export interface ViteOptions extends InlineConfig { @@ -98,11 +97,6 @@ export async function bundle (nuxt: Nuxt) { } } }) - - const start = Date.now() - warmupViteServer(server, ['/entry.mjs']) - .then(() => logger.info(`Vite ${env.isClient ? 'client' : 'server'} warmed up in ${Date.now() - start}ms`)) - .catch(logger.error) }) await buildClient(ctx) diff --git a/yarn.lock b/yarn.lock index b8b7e8a962b..4bccec9ea95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2599,7 +2599,7 @@ __metadata: "@types/fs-extra": ^9.0.13 "@types/hash-sum": ^1.0.0 "@types/node-fetch": ^3.0.2 - "@vitejs/plugin-legacy": ^1.7.1 + "@vitejs/plugin-legacy": ^1.8.0 "@vue/composition-api": ^1.4.9 "@vueuse/head": ^0.7.5 acorn: ^8.7.0 @@ -2637,7 +2637,7 @@ __metadata: unplugin: ^0.6.0 unplugin-vue2-script-setup: ^0.10.1 untyped: ^0.4.3 - vite: ^2.8.6 + vite: ^2.9.0 vite-plugin-vue2: ^1.9.3 vue: ^2 vue-router: ^3 @@ -3209,7 +3209,7 @@ __metadata: ohmyfetch: ^0.4.15 playwright: ^1.20.1 unbuild: latest - vitest: ^0.8.0 + vitest: ^0.8.1 peerDependencies: vue: 3.2.31 languageName: unknown @@ -3317,8 +3317,8 @@ __metadata: "@nuxt/kit": 3.0.0 "@nuxt/schema": 3.0.0 "@types/cssnano": ^5 - "@vitejs/plugin-vue": ^2.2.4 - "@vitejs/plugin-vue-jsx": ^1.3.8 + "@vitejs/plugin-vue": ^2.3.1 + "@vitejs/plugin-vue-jsx": ^1.3.9 autoprefixer: ^10.4.4 chokidar: ^3.5.3 cssnano: ^5.1.5 @@ -3341,8 +3341,8 @@ __metadata: ufo: ^0.8.1 unbuild: latest unplugin: ^0.6.0 - vite: ^2.8.6 - vite-node: ^0.8.0 + vite: ^2.9.0 + vite-node: ^0.8.1 vue: 3.2.31 peerDependencies: vue: 3.2.31 @@ -5036,7 +5036,7 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-legacy@npm:^1.7.1": +"@vitejs/plugin-legacy@npm:^1.8.0": version: 1.8.0 resolution: "@vitejs/plugin-legacy@npm:1.8.0" dependencies: @@ -5051,7 +5051,7 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-vue-jsx@npm:^1.3.8": +"@vitejs/plugin-vue-jsx@npm:^1.3.9": version: 1.3.9 resolution: "@vitejs/plugin-vue-jsx@npm:1.3.9" dependencies: @@ -5065,13 +5065,13 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-vue@npm:^2.2.4": - version: 2.3.0 - resolution: "@vitejs/plugin-vue@npm:2.3.0" +"@vitejs/plugin-vue@npm:^2.3.1": + version: 2.3.1 + resolution: "@vitejs/plugin-vue@npm:2.3.1" peerDependencies: - vite: ^2.9.0 + vite: ^2.5.10 vue: ^3.2.25 - checksum: 732ef5b08cec12303b254aa15d9f11970a5ea92bdf1314554e5241ed571df9e3b22d554fae5200ef62c88558747d1ae1f2c8814a6bc440e082facc33ab8f5e5b + checksum: 7102d80c7b37c5761213ca57a5d50db95bda387dee92a77bd3d0198fd00c47d117ba82761c26a9d40f83e274d6fa8e3932765f5f930e8139848be7b7b176a200 languageName: node linkType: hard @@ -15450,7 +15450,7 @@ __metadata: pathe: ^0.2.0 typescript: ^4.6.3 unbuild: ^0.7.2 - vitest: ^0.8.0 + vitest: ^0.8.1 vue-router: ^4.0.14 vue-tsc: ^0.33.9 languageName: unknown @@ -21606,7 +21606,7 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:^0.8.0": +"vite-node@npm:^0.8.1": version: 0.8.1 resolution: "vite-node@npm:0.8.1" dependencies: @@ -21652,7 +21652,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:^2.8.6": +"vite@npm:^2.9.0": version: 2.9.0 resolution: "vite@npm:2.9.0" dependencies: @@ -21681,7 +21681,7 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^0.8.0": +"vitest@npm:^0.8.1": version: 0.8.1 resolution: "vitest@npm:0.8.1" dependencies: From 8f9e6b583f1ff8f601f51b5abe2de2b0a36d70dd Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 30 Mar 2022 20:46:54 +0100 Subject: [PATCH 2/4] style: remove unused param --- packages/vite/src/vite.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/vite.ts b/packages/vite/src/vite.ts index de44ce90926..7b054aa06e3 100644 --- a/packages/vite/src/vite.ts +++ b/packages/vite/src/vite.ts @@ -88,7 +88,7 @@ export async function bundle (nuxt: Nuxt) { await nuxt.callHook('vite:extend', ctx) - nuxt.hook('vite:serverCreated', (server: vite.ViteDevServer, env) => { + nuxt.hook('vite:serverCreated', (server: vite.ViteDevServer) => { // Invalidate virtual modules when templates are re-generated ctx.nuxt.hook('app:templatesGenerated', () => { for (const [id, mod] of server.moduleGraph.idToModuleMap) { From bc04a0744234b1662bf60361a0d9d68e20ef5f73 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 31 Mar 2022 00:36:12 +0200 Subject: [PATCH 3/4] revert renovate change --- renovate.json | 1 - yarn.lock | 46 ++++++++++------------------------------------ 2 files changed, 10 insertions(+), 37 deletions(-) diff --git a/renovate.json b/renovate.json index 68ad1cacc60..4951afde851 100644 --- a/renovate.json +++ b/renovate.json @@ -16,7 +16,6 @@ "@docus/social-image", "@docus/theme", "@docus/twitter", - "vite", "h3" ] } diff --git a/yarn.lock b/yarn.lock index 8c594a083a3..bd5a5dcdca7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,3 +1,6 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + __metadata: version: 6 cacheKey: 8 @@ -2634,7 +2637,7 @@ __metadata: unplugin: ^0.6.0 unplugin-vue2-script-setup: ^0.10.1 untyped: ^0.4.3 - vite: ~2.8.6 + vite: ^2.9.0 vite-plugin-vue2: ^1.9.3 vue: ^2 vue-router: ^3 @@ -3338,7 +3341,7 @@ __metadata: ufo: ^0.8.1 unbuild: latest unplugin: ^0.6.0 - vite: ~2.8.6 + vite: ^2.9.0 vite-node: ^0.8.1 vue: 3.2.31 peerDependencies: @@ -9877,7 +9880,7 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.14.14, esbuild@npm:^0.14.25, esbuild@npm:^0.14.27, esbuild@npm:^0.14.29, esbuild@npm:^0.14.6": +"esbuild@npm:^0.14.25, esbuild@npm:^0.14.27, esbuild@npm:^0.14.29, esbuild@npm:^0.14.6": version: 0.14.29 resolution: "esbuild@npm:0.14.29" dependencies: @@ -17965,7 +17968,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8, postcss@npm:^8.1.10, postcss@npm:^8.2.15, postcss@npm:^8.3.5, postcss@npm:^8.4.12, postcss@npm:^8.4.6, postcss@npm:^8.4.7": +"postcss@npm:^8, postcss@npm:^8.1.10, postcss@npm:^8.2.15, postcss@npm:^8.3.5, postcss@npm:^8.4.12, postcss@npm:^8.4.7": version: 8.4.12 resolution: "postcss@npm:8.4.12" dependencies: @@ -21653,38 +21656,9 @@ __metadata: version: 2.9.0 resolution: "vite@npm:2.9.0" dependencies: - esbuild: ^0.14.14 - fsevents: ~2.3.2 - postcss: ^8.4.6 - resolve: ^1.22.0 - rollup: ^2.59.0 - peerDependencies: - less: "*" - sass: "*" - stylus: "*" - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - less: - optional: true - sass: - optional: true - stylus: - optional: true - bin: - vite: bin/vite.js - checksum: 4b02d133892c98362c10214b7ad518d74b59745889197a2ba0b63260ed083fcef75a447e8fb58dbd2af8747386274b36017983d93031254df6ead38701950dcc - languageName: node - linkType: hard - -"vite@npm:~2.8.6": - version: 2.8.6 - resolution: "vite@npm:2.8.6" - dependencies: - esbuild: ^0.14.14 + esbuild: ^0.14.27 fsevents: ~2.3.2 - postcss: ^8.4.6 + postcss: ^8.4.12 resolve: ^1.22.0 rollup: ^2.59.0 peerDependencies: @@ -21703,7 +21677,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 4b02d133892c98362c10214b7ad518d74b59745889197a2ba0b63260ed083fcef75a447e8fb58dbd2af8747386274b36017983d93031254df6ead38701950dcc + checksum: 2355a5a7a57a86558fb2378b493c98c97218ffdf5c7555df5531147217c8ec804d66434dfed130034c920cb0913cd5f0fa1f5d7756101601558320349c0e1cee languageName: node linkType: hard From 80cd9436159a8df1f5c7a5e9925add1efe5d7ed4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 31 Mar 2022 10:23:06 +0100 Subject: [PATCH 4/4] fix: revert warmup removal --- packages/bridge/src/vite/vite.ts | 11 +++++++++++ packages/vite/src/utils/warmup.ts | 20 ++++++++++++++++++++ packages/vite/src/vite.ts | 10 ++++++++-- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 packages/vite/src/utils/warmup.ts diff --git a/packages/bridge/src/vite/vite.ts b/packages/bridge/src/vite/vite.ts index ab26acfe7a5..1ec626dc309 100644 --- a/packages/bridge/src/vite/vite.ts +++ b/packages/bridge/src/vite/vite.ts @@ -1,7 +1,9 @@ import { resolve } from 'pathe' import * as vite from 'vite' +import { logger } from '@nuxt/kit' import { withoutLeadingSlash } from 'ufo' import { distDir } from '../dirs' +import { warmupViteServer } from '../../../vite/src/utils/warmup' import { buildClient } from './client' import { buildServer } from './server' import { defaultExportPlugin } from './plugins/default-export' @@ -87,6 +89,15 @@ async function bundle (nuxt: Nuxt, builder: any) { await ctx.nuxt.callHook('vite:extend', ctx) + if (nuxt.options.dev) { + ctx.nuxt.hook('vite:serverCreated', (server: vite.ViteDevServer) => { + const start = Date.now() + warmupViteServer(server, ['/.nuxt/entry.mjs']).then(() => { + logger.info(`Vite warmed up in ${Date.now() - start}ms`) + }).catch(logger.error) + }) + } + await buildClient(ctx) await prepareManifests(ctx) await buildServer(ctx) diff --git a/packages/vite/src/utils/warmup.ts b/packages/vite/src/utils/warmup.ts new file mode 100644 index 00000000000..cda761e6e0d --- /dev/null +++ b/packages/vite/src/utils/warmup.ts @@ -0,0 +1,20 @@ +import { logger } from '@nuxt/kit' +import type { ViteDevServer } from 'vite' + +export async function warmupViteServer (server: ViteDevServer, entries: string[]) { + const warmedUrls = new Set() + + const warmup = async (url: string) => { + if (warmedUrls.has(url)) { return undefined } + warmedUrls.add(url) + try { + await server.transformRequest(url) + } catch (e) { + logger.debug('Warmup for %s failed with: %s', url, e) + } + const deps = Array.from(server.moduleGraph.urlToModuleMap.get(url)?.importedModules || []) + await Promise.all(deps.map(m => warmup(m.url))) + } + + await Promise.all(entries.map(entry => warmup(entry))) +} diff --git a/packages/vite/src/vite.ts b/packages/vite/src/vite.ts index 7b054aa06e3..e41c21913b3 100644 --- a/packages/vite/src/vite.ts +++ b/packages/vite/src/vite.ts @@ -2,13 +2,14 @@ import * as vite from 'vite' import { resolve } from 'pathe' import type { Nuxt } from '@nuxt/schema' import type { InlineConfig, SSROptions } from 'vite' -import { isIgnored } from '@nuxt/kit' +import { logger, isIgnored } from '@nuxt/kit' import type { Options } from '@vitejs/plugin-vue' import { sanitizeFilePath } from 'mlly' import { getPort } from 'get-port-please' import { buildClient } from './client' import { buildServer } from './server' import virtual from './plugins/virtual' +import { warmupViteServer } from './utils/warmup' import { resolveCSSOptions } from './css' export interface ViteOptions extends InlineConfig { @@ -88,7 +89,7 @@ export async function bundle (nuxt: Nuxt) { await nuxt.callHook('vite:extend', ctx) - nuxt.hook('vite:serverCreated', (server: vite.ViteDevServer) => { + nuxt.hook('vite:serverCreated', (server: vite.ViteDevServer, env) => { // Invalidate virtual modules when templates are re-generated ctx.nuxt.hook('app:templatesGenerated', () => { for (const [id, mod] of server.moduleGraph.idToModuleMap) { @@ -97,6 +98,11 @@ export async function bundle (nuxt: Nuxt) { } } }) + + const start = Date.now() + warmupViteServer(server, ['/entry.mjs']) + .then(() => logger.info(`Vite ${env.isClient ? 'client' : 'server'} warmed up in ${Date.now() - start}ms`)) + .catch(logger.error) }) await buildClient(ctx)