From a4927c51da5f3ec1b7cf4701f3bab0fbd91d7221 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 4 Mar 2022 05:04:10 +0800 Subject: [PATCH 1/3] fix(ssr): bypass missing resolve error in SSR (#7164) --- packages/vite/src/node/plugins/importAnalysis.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/vite/src/node/plugins/importAnalysis.ts b/packages/vite/src/node/plugins/importAnalysis.ts index 3ff2000b6d3f7d..76dfe77a8cfe96 100644 --- a/packages/vite/src/node/plugins/importAnalysis.ts +++ b/packages/vite/src/node/plugins/importAnalysis.ts @@ -213,6 +213,10 @@ export function importAnalysisPlugin(config: ResolvedConfig): Plugin { const resolved = await this.resolve(url, importerFile) if (!resolved) { + // in ssr, we should let node handle the missing modules + if (ssr) { + return [url, url] + } this.error( `Failed to resolve import "${url}" from "${path.relative( process.cwd(), From e626055eebf37c784c62da369b7249e233c5ca42 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Sat, 5 Mar 2022 01:27:08 +0800 Subject: [PATCH 2/3] feat: show all prebundle deps when debug (#6726) --- packages/vite/src/node/optimizer/index.ts | 24 +++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 0cae19ec0f0769..5455de5cc23e06 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -1,5 +1,6 @@ import fs from 'fs' import path from 'path' +import _debug from 'debug' import colors from 'picocolors' import { createHash } from 'crypto' import type { BuildOptions as EsbuildBuildOptions } from 'esbuild' @@ -21,6 +22,7 @@ import { transformWithEsbuild } from '../plugins/esbuild' import { performance } from 'perf_hooks' const debug = createDebugger('vite:deps') +const isDebugEnabled = _debug('vite:deps').enabled export type ExportsData = ReturnType & { // es-module-lexer has a facade detection but isn't always accurate for our @@ -339,14 +341,20 @@ export async function createOptimizeDepsRun( return } - const total = qualifiedIds.length - const maxListed = 5 - const listed = Math.min(total, maxListed) - const extra = Math.max(0, total - maxListed) - const depsString = colors.yellow( - qualifiedIds.slice(0, listed).join(`\n `) + - (extra > 0 ? `\n (...and ${extra} more)` : ``) - ) + let depsString: string + if (isDebugEnabled) { + depsString = colors.yellow(qualifiedIds.join(`\n `)) + } else { + const total = qualifiedIds.length + const maxListed = 5 + const listed = Math.min(total, maxListed) + const extra = Math.max(0, total - maxListed) + depsString = colors.yellow( + qualifiedIds.slice(0, listed).join(`\n `) + + (extra > 0 ? `\n (...and ${extra} more)` : ``) + ) + } + if (!asCommand) { if (!newDeps) { // This is auto run on server start - let the user know that we are From 6cb0647834762bca9aa0cef542719882b42c2cf0 Mon Sep 17 00:00:00 2001 From: Dominik G Date: Fri, 4 Mar 2022 21:16:49 +0100 Subject: [PATCH 3/3] fix: revert #6340, definePlugin tests, warning box (#7174) Co-authored-by: patak-dev --- docs/config/index.md | 2 + .../define/__tests__/define.spec.ts | 9 ----- packages/playground/define/index.html | 6 --- packages/playground/define/vite.config.js | 5 +-- .../src/node/__tests__/plugins/define.spec.ts | 39 +++++++++++++++++++ packages/vite/src/node/plugins/define.ts | 39 +++++++------------ 6 files changed, 57 insertions(+), 43 deletions(-) create mode 100644 packages/vite/src/node/__tests__/plugins/define.spec.ts diff --git a/docs/config/index.md b/docs/config/index.md index 27234b01a9b4af..4d42063e30e82c 100644 --- a/docs/config/index.md +++ b/docs/config/index.md @@ -139,9 +139,11 @@ export default defineConfig(async ({ command, mode }) => { - Replacements are performed only when the match is surrounded by word boundaries (`\b`). + ::: warning Because it's implemented as straightforward text replacements without any syntax analysis, we recommend using `define` for CONSTANTS only. For example, `process.env.FOO` and `__APP_VERSION__` are good fits. But `process` or `global` should not be put into this option. Variables can be shimmed or polyfilled instead. + ::: ::: tip NOTE For TypeScript users, make sure to add the type declarations in the `env.d.ts` or `vite-env.d.ts` file to get type checks and Intellisense. diff --git a/packages/playground/define/__tests__/define.spec.ts b/packages/playground/define/__tests__/define.spec.ts index f417026ebd186d..f5eb78ea4e2766 100644 --- a/packages/playground/define/__tests__/define.spec.ts +++ b/packages/playground/define/__tests__/define.spec.ts @@ -20,13 +20,4 @@ test('string', async () => { expect(await page.textContent('.spread-array')).toBe( JSON.stringify([...defines.__STRING__]) ) - expect(await page.textContent('.import-file')).not.toBe( - `import * from "${defines.__IMPORT_FILE_NAME__}"` - ) - expect(await page.textContent('.export-file')).not.toBe( - `export * from "${defines.__EXPORT_FILE_NAME__}"` - ) - expect(await page.textContent('.path')).not.toBe( - `import * from "xxxx/${defines.PATH}"` - ) }) diff --git a/packages/playground/define/index.html b/packages/playground/define/index.html index a285764dd9e0b4..bf6a9c59689396 100644 --- a/packages/playground/define/index.html +++ b/packages/playground/define/index.html @@ -9,9 +9,6 @@

Define

process as property:

spread object:

spread array:

-

import file:

-

export file:

-

path: