From 9527e65a382e0775f171f88be0ca37c465317e25 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Wed, 25 Oct 2023 11:19:49 +0200 Subject: [PATCH] chore: improve build time and memory usage (#4369) --- .github/renovate.json5 | 11 - package.json | 5 +- packages/browser/rollup.config.js | 6 +- packages/browser/src/client/main.ts | 2 +- packages/browser/src/client/runner.ts | 2 +- packages/browser/src/client/snapshot.ts | 2 +- packages/browser/tsconfig.json | 8 +- packages/coverage-istanbul/rollup.config.js | 8 +- packages/coverage-istanbul/tsconfig.json | 5 + packages/coverage-v8/rollup.config.js | 8 +- packages/coverage-v8/tsconfig.json | 5 + packages/expect/tsconfig.json | 5 + packages/runner/tsconfig.json | 5 + packages/snapshot/src/port/inlineSnapshot.ts | 2 +- packages/snapshot/src/port/state.ts | 4 +- packages/snapshot/src/port/utils.ts | 2 +- packages/snapshot/tsconfig.json | 5 + packages/spy/tsconfig.json | 5 + packages/ui/client/components/FileDetails.vue | 2 +- packages/ui/client/components/Navigation.vue | 2 +- packages/ui/client/components/StatusIcon.vue | 2 +- packages/ui/client/components/TaskItem.vue | 2 +- packages/ui/client/components/TaskTree.vue | 2 +- packages/ui/client/components/TasksList.vue | 2 +- .../views/ViewConsoleOutputEntry.vue | 2 +- .../ui/client/components/views/ViewEditor.vue | 2 +- .../client/components/views/ViewReport.cy.tsx | 2 +- .../ui/client/components/views/ViewReport.vue | 2 +- .../components/views/ViewReportError.vue | 2 +- .../ui/client/composables/client/index.ts | 2 +- .../ui/client/composables/module-graph.ts | 2 +- packages/ui/client/composables/navigation.ts | 2 +- packages/ui/client/utils/task.ts | 2 +- packages/ui/node/index.ts | 2 +- packages/ui/node/reporter.ts | 19 +- packages/ui/package.json | 3 +- packages/ui/reporter.d.ts | 4 + packages/ui/rollup.config.js | 76 ++--- packages/ui/tsconfig.json | 8 +- packages/utils/src/error.ts | 5 + packages/utils/tsconfig.json | 9 + packages/vite-node/rollup.config.js | 12 +- packages/vite-node/src/hmr/hmr.ts | 4 +- packages/vite-node/src/types.ts | 2 +- packages/vite-node/tsconfig.json | 2 +- packages/vitest/src/browser.ts | 2 +- packages/vitest/src/runtime/entry-vm.ts | 2 +- packages/vitest/src/runtime/entry.ts | 2 +- packages/vitest/src/runtime/runners/index.ts | 2 +- .../{setup.common.ts => setup-common.ts} | 0 .../runtime/{setup.node.ts => setup-node.ts} | 2 +- packages/vitest/tsconfig.json | 9 + packages/web-worker/rollup.config.js | 8 +- packages/web-worker/tsconfig.json | 2 +- packages/ws-client/rollup.config.js | 8 +- packages/ws-client/tsconfig.json | 2 +- pnpm-lock.yaml | 296 ++++++++---------- test/core/test/diff.test.ts | 2 +- test/core/test/env-runtime.test.ts | 2 +- test/core/test/injector-esm.test.ts | 2 +- test/core/test/injector-mock.test.ts | 2 +- test/core/test/module-label.test.ts | 50 --- test/core/test/sequencers.test.ts | 6 +- test/core/test/vi.spec.ts | 2 +- test/coverage-test/package.json | 2 +- test/reporters/tests/utils.test.ts | 2 +- test/reporters/tsconfig.json | 2 +- test/tsconfig.json | 12 + test/typescript/package.json | 4 +- .../test/__snapshots__/runner.test.ts.snap | 2 +- test/typescript/tsconfig.custom.json | 2 +- test/typescript/tsconfig.empty.json | 2 +- test/typescript/tsconfig.json | 2 +- tsconfig.json => tsconfig.base.json | 38 +-- tsconfig.check.json | 22 ++ 75 files changed, 361 insertions(+), 396 deletions(-) create mode 100644 packages/coverage-istanbul/tsconfig.json create mode 100644 packages/coverage-v8/tsconfig.json create mode 100644 packages/expect/tsconfig.json create mode 100644 packages/runner/tsconfig.json create mode 100644 packages/snapshot/tsconfig.json create mode 100644 packages/spy/tsconfig.json create mode 100644 packages/ui/reporter.d.ts create mode 100644 packages/utils/tsconfig.json rename packages/vitest/src/runtime/{setup.common.ts => setup-common.ts} (100%) rename packages/vitest/src/runtime/{setup.node.ts => setup-node.ts} (98%) create mode 100644 packages/vitest/tsconfig.json delete mode 100644 test/core/test/module-label.test.ts create mode 100644 test/tsconfig.json rename tsconfig.json => tsconfig.base.json (69%) create mode 100644 tsconfig.check.json diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 5f25da869..77b9461e6 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -18,17 +18,6 @@ ], "groupName": "all non-major examples dependencies", "groupSlug": "all-minor-patch-examples" - }, - { - "excludePackagePatterns": [ - "@vitest/test-" - ], - "matchUpdateTypes": [ - "minor", - "patch" - ], - "groupName": "all non-major dependencies", - "groupSlug": "all-minor-patch" } ], "ignoreDeps": [ diff --git a/package.json b/package.json index f2563f912..e0ac57cbe 100644 --- a/package.json +++ b/package.json @@ -29,8 +29,8 @@ "test:ci": "CI=true pnpm -r --stream --filter !test-fails --filter !test-browser --filter !test-esm --filter !test-browser run test --allowOnly", "test:ci:vm-threads": "CI=true pnpm -r --stream --filter !test-fails --filter !test-coverage --filter !test-single-thread --filter !test-browser --filter !test-esm --filter !test-browser run test --allowOnly --pool vmThreads", "test:ci:no-threads": "CI=true pnpm -r --stream --filter !test-fails --filter !test-vm-threads --filter !test-coverage --filter !test-watch --filter !test-bail --filter !test-esm --filter !test-browser run test --allowOnly --pool forks", - "typecheck": "tsc --noEmit", - "typecheck:why": "tsc --noEmit --explainFiles > explainTypes.txt", + "typecheck": "tsc -p tsconfig.check.json --noEmit", + "typecheck:why": "tsc -p tsconfig.check.json --noEmit --explainFiles > explainTypes.txt", "ui:build": "vite build packages/ui", "ui:dev": "vite packages/ui", "ui:test": "npm -C packages/ui run test:run", @@ -40,7 +40,6 @@ "devDependencies": { "@antfu/eslint-config": "^0.39.6", "@antfu/ni": "^0.21.4", - "@rollup/plugin-alias": "^5.0.0", "@rollup/plugin-commonjs": "^25.0.4", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^15.2.1", diff --git a/packages/browser/rollup.config.js b/packages/browser/rollup.config.js index b63072012..5f7481420 100644 --- a/packages/browser/rollup.config.js +++ b/packages/browser/rollup.config.js @@ -3,7 +3,6 @@ import dts from 'rollup-plugin-dts' import resolve from '@rollup/plugin-node-resolve' import commonjs from '@rollup/plugin-commonjs' import json from '@rollup/plugin-json' -import alias from '@rollup/plugin-alias' import pkg from './package.json' assert { type: 'json' } const external = [ @@ -14,16 +13,13 @@ const external = [ ] const plugins = [ - alias({ - entries: [{ find: /^node:(.+)$/, replacement: '$1' }], - }), resolve({ preferBuiltins: true, }), json(), commonjs(), esbuild({ - target: 'node14', + target: 'node18', }), ] diff --git a/packages/browser/src/client/main.ts b/packages/browser/src/client/main.ts index e3ff443e9..7a5344ac1 100644 --- a/packages/browser/src/client/main.ts +++ b/packages/browser/src/client/main.ts @@ -1,7 +1,7 @@ import { createClient } from '@vitest/ws-client' import type { ResolvedConfig } from 'vitest' import type { CancelReason, VitestRunner } from '@vitest/runner' -import type { VitestExecutor } from 'vitest/src/runtime/execute' +import type { VitestExecutor } from '../../../vitest/src/runtime/execute' import { createBrowserRunner } from './runner' import { importId } from './utils' import { setupConsoleLogSpy } from './logger' diff --git a/packages/browser/src/client/runner.ts b/packages/browser/src/client/runner.ts index faf74af71..5f5693bc5 100644 --- a/packages/browser/src/client/runner.ts +++ b/packages/browser/src/client/runner.ts @@ -1,6 +1,6 @@ import type { File, TaskResultPack, Test } from '@vitest/runner' +import type { ResolvedConfig } from 'vitest' import { rpc } from './rpc' -import type { ResolvedConfig } from '#types' interface BrowserRunnerOptions { config: ResolvedConfig diff --git a/packages/browser/src/client/snapshot.ts b/packages/browser/src/client/snapshot.ts index b0d43a0e4..adf9180c2 100644 --- a/packages/browser/src/client/snapshot.ts +++ b/packages/browser/src/client/snapshot.ts @@ -1,5 +1,5 @@ +import type { SnapshotEnvironment } from 'vitest' import { rpc } from './rpc' -import type { SnapshotEnvironment } from '#types' export class BrowserSnapshotEnvironment implements SnapshotEnvironment { getVersion(): string { diff --git a/packages/browser/tsconfig.json b/packages/browser/tsconfig.json index f264cd9af..5ca4cde0c 100644 --- a/packages/browser/tsconfig.json +++ b/packages/browser/tsconfig.json @@ -1,4 +1,10 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": [ + "node", + "vite/client" + ] + }, "exclude": ["dist", "node_modules"] } diff --git a/packages/coverage-istanbul/rollup.config.js b/packages/coverage-istanbul/rollup.config.js index 7eaba0bd6..fef84f6e4 100644 --- a/packages/coverage-istanbul/rollup.config.js +++ b/packages/coverage-istanbul/rollup.config.js @@ -3,7 +3,6 @@ import esbuild from 'rollup-plugin-esbuild' import dts from 'rollup-plugin-dts' import commonjs from '@rollup/plugin-commonjs' import json from '@rollup/plugin-json' -import alias from '@rollup/plugin-alias' import nodeResolve from '@rollup/plugin-node-resolve' import { join } from 'pathe' import pkg from './package.json' assert { type: 'json' } @@ -24,16 +23,11 @@ const external = [ ] const plugins = [ - alias({ - entries: [ - { find: /^node:(.+)$/, replacement: '$1' }, - ], - }), nodeResolve(), json(), commonjs(), esbuild({ - target: 'node14', + target: 'node18', }), ] diff --git a/packages/coverage-istanbul/tsconfig.json b/packages/coverage-istanbul/tsconfig.json new file mode 100644 index 000000000..8bcb003f8 --- /dev/null +++ b/packages/coverage-istanbul/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src/**/*.ts"], + "exclude": ["./dist"] +} diff --git a/packages/coverage-v8/rollup.config.js b/packages/coverage-v8/rollup.config.js index 15844d9de..3872be2e1 100644 --- a/packages/coverage-v8/rollup.config.js +++ b/packages/coverage-v8/rollup.config.js @@ -3,7 +3,6 @@ import esbuild from 'rollup-plugin-esbuild' import dts from 'rollup-plugin-dts' import commonjs from '@rollup/plugin-commonjs' import json from '@rollup/plugin-json' -import alias from '@rollup/plugin-alias' import nodeResolve from '@rollup/plugin-node-resolve' import { join } from 'pathe' import pkg from './package.json' assert { type: 'json' } @@ -25,16 +24,11 @@ const external = [ ] const plugins = [ - alias({ - entries: [ - { find: /^node:(.+)$/, replacement: '$1' }, - ], - }), nodeResolve(), json(), commonjs(), esbuild({ - target: 'node14', + target: 'node18', }), ] diff --git a/packages/coverage-v8/tsconfig.json b/packages/coverage-v8/tsconfig.json new file mode 100644 index 000000000..8bcb003f8 --- /dev/null +++ b/packages/coverage-v8/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src/**/*.ts"], + "exclude": ["./dist"] +} diff --git a/packages/expect/tsconfig.json b/packages/expect/tsconfig.json new file mode 100644 index 000000000..8bcb003f8 --- /dev/null +++ b/packages/expect/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src/**/*.ts"], + "exclude": ["./dist"] +} diff --git a/packages/runner/tsconfig.json b/packages/runner/tsconfig.json new file mode 100644 index 000000000..8bcb003f8 --- /dev/null +++ b/packages/runner/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src/**/*.ts"], + "exclude": ["./dist"] +} diff --git a/packages/snapshot/src/port/inlineSnapshot.ts b/packages/snapshot/src/port/inlineSnapshot.ts index 3c82b66c5..67224e6b0 100644 --- a/packages/snapshot/src/port/inlineSnapshot.ts +++ b/packages/snapshot/src/port/inlineSnapshot.ts @@ -1,5 +1,5 @@ import type MagicString from 'magic-string' -import { getCallLastIndex, lineSplitRE, offsetToLineNumber, positionToOffset } from '@vitest/utils' +import { getCallLastIndex, lineSplitRE, offsetToLineNumber, positionToOffset } from '../../../utils/src/index' import type { SnapshotEnvironment } from '../types' export interface InlineSnapshot { diff --git a/packages/snapshot/src/port/state.ts b/packages/snapshot/src/port/state.ts index 7346681b3..dbaf25269 100644 --- a/packages/snapshot/src/port/state.ts +++ b/packages/snapshot/src/port/state.ts @@ -5,9 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -import type { ParsedStack } from '@vitest/utils' -import { parseErrorStacktrace } from '@vitest/utils/source-map' import type { OptionsReceived as PrettyFormatOptions } from 'pretty-format' +import type { ParsedStack } from '../../../utils/src/index' +import { parseErrorStacktrace } from '../../../utils/src/source-map' import type { SnapshotData, SnapshotEnvironment, SnapshotMatchOptions, SnapshotResult, SnapshotStateOptions, SnapshotUpdateState } from '../types' import type { InlineSnapshot } from './inlineSnapshot' import { saveInlineSnapshots } from './inlineSnapshot' diff --git a/packages/snapshot/src/port/utils.ts b/packages/snapshot/src/port/utils.ts index 69e02e1c3..a1184f54b 100644 --- a/packages/snapshot/src/port/utils.ts +++ b/packages/snapshot/src/port/utils.ts @@ -10,7 +10,7 @@ import type { OptionsReceived as PrettyFormatOptions } from 'pretty-format' import { format as prettyFormat, } from 'pretty-format' -import { isObject } from '@vitest/utils' +import { isObject } from '../../../utils/src/index' import type { SnapshotData, SnapshotStateOptions } from '../types' import type { SnapshotEnvironment } from '../types/environment' import { getSerializers } from './plugins' diff --git a/packages/snapshot/tsconfig.json b/packages/snapshot/tsconfig.json new file mode 100644 index 000000000..8bcb003f8 --- /dev/null +++ b/packages/snapshot/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src/**/*.ts"], + "exclude": ["./dist"] +} diff --git a/packages/spy/tsconfig.json b/packages/spy/tsconfig.json new file mode 100644 index 000000000..8bcb003f8 --- /dev/null +++ b/packages/spy/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src/**/*.ts"], + "exclude": ["./dist"] +} diff --git a/packages/ui/client/components/FileDetails.vue b/packages/ui/client/components/FileDetails.vue index c8b2c8c7c..a162e074a 100644 --- a/packages/ui/client/components/FileDetails.vue +++ b/packages/ui/client/components/FileDetails.vue @@ -1,10 +1,10 @@ diff --git a/packages/ui/client/components/TaskItem.vue b/packages/ui/client/components/TaskItem.vue index f9ba4ee05..db3bb3595 100644 --- a/packages/ui/client/components/TaskItem.vue +++ b/packages/ui/client/components/TaskItem.vue @@ -1,5 +1,5 @@