From 5a9e479a7138ba15fcfb870a7a8842567ea300b1 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Wed, 11 May 2022 16:14:38 +0800 Subject: [PATCH] chore(lint): sort for imports --- .eslintrc.cjs | 13 +++ package.json | 10 +- packages/plugin-react/src/fast-refresh.ts | 2 +- .../jsx-runtime/babel-import-to-require.ts | 2 +- .../src/jsx-runtime/babel-restore-jsx.spec.ts | 4 +- .../src/jsx-runtime/restore-jsx.spec.ts | 4 +- packages/plugin-vue/src/handleHotUpdate.ts | 2 +- packages/plugin-vue/src/main.ts | 16 +-- packages/plugin-vue/src/script.ts | 2 +- packages/plugin-vue/src/style.ts | 2 +- packages/plugin-vue/src/template.ts | 6 +- .../vite/src/node/__tests__/asset.spec.ts | 2 +- .../vite/src/node/__tests__/build.spec.ts | 4 +- .../vite/src/node/__tests__/config.spec.ts | 4 +- packages/vite/src/node/__tests__/dev.spec.ts | 2 +- .../src/node/__tests__/plugins/css.spec.ts | 6 +- .../src/node/__tests__/plugins/define.spec.ts | 2 +- .../plugins/dynamicImportVar/parse.test.ts | 2 +- .../src/node/__tests__/plugins/import.spec.ts | 2 +- packages/vite/src/node/__tests__/scan.spec.ts | 4 +- .../vite/src/node/__tests__/utils.spec.ts | 2 +- packages/vite/src/node/build.ts | 30 ++--- packages/vite/src/node/cli.ts | 2 +- packages/vite/src/node/config.ts | 32 +++--- packages/vite/src/node/http.ts | 6 +- packages/vite/src/node/logger.ts | 4 +- .../src/node/optimizer/esbuildDepPlugin.ts | 8 +- packages/vite/src/node/optimizer/index.ts | 16 +-- .../src/node/optimizer/registerMissing.ts | 20 ++-- packages/vite/src/node/optimizer/scan.ts | 26 ++--- packages/vite/src/node/plugin.ts | 6 +- packages/vite/src/node/plugins/asset.ts | 6 +- .../src/node/plugins/assetImportMetaUrl.ts | 8 +- .../vite/src/node/plugins/clientInjections.ts | 2 +- packages/vite/src/node/plugins/css.ts | 55 +++++----- packages/vite/src/node/plugins/dataUri.ts | 2 +- .../src/node/plugins/dynamicImportVars.ts | 6 +- packages/vite/src/node/plugins/esbuild.ts | 18 +-- packages/vite/src/node/plugins/html.ts | 30 ++--- .../vite/src/node/plugins/importAnalysis.ts | 60 +++++----- .../src/node/plugins/importAnalysisBuild.ts | 8 +- .../vite/src/node/plugins/importMetaGlob.ts | 4 +- packages/vite/src/node/plugins/index.ts | 2 +- .../vite/src/node/plugins/optimizedDeps.ts | 2 +- packages/vite/src/node/plugins/reporter.ts | 2 +- packages/vite/src/node/plugins/resolve.ts | 36 +++--- .../vite/src/node/plugins/splitVendorChunk.ts | 8 +- packages/vite/src/node/plugins/terser.ts | 2 +- packages/vite/src/node/plugins/worker.ts | 8 +- .../src/node/plugins/workerImportMetaUrl.ts | 12 +- packages/vite/src/node/preview.ts | 14 +-- .../server/__tests__/pluginContainer.spec.ts | 2 +- .../node/server/__tests__/search-root.spec.ts | 4 +- packages/vite/src/node/server/hmr.ts | 10 +- packages/vite/src/node/server/index.ts | 48 ++++---- .../vite/src/node/server/middlewares/base.ts | 2 +- .../vite/src/node/server/middlewares/error.ts | 4 +- .../src/node/server/middlewares/indexHtml.ts | 8 +- .../vite/src/node/server/middlewares/proxy.ts | 4 +- .../node/server/middlewares/spaFallback.ts | 2 +- .../src/node/server/middlewares/static.ts | 8 +- .../src/node/server/middlewares/transform.ts | 14 +-- packages/vite/src/node/server/moduleGraph.ts | 4 +- packages/vite/src/node/server/openBrowser.ts | 2 +- .../vite/src/node/server/pluginContainer.ts | 22 ++-- packages/vite/src/node/server/sourcemap.ts | 2 +- .../vite/src/node/server/transformRequest.ts | 12 +- packages/vite/src/node/server/ws.ts | 4 +- .../node/ssr/__tests__/ssrExternal.spec.ts | 2 +- .../ssr/__tests__/ssrModuleLoader.spec.ts | 2 +- .../node/ssr/__tests__/ssrTransform.spec.ts | 2 +- packages/vite/src/node/ssr/ssrExternal.ts | 2 +- .../vite/src/node/ssr/ssrManifestPlugin.ts | 2 +- packages/vite/src/node/ssr/ssrModuleLoader.ts | 16 +-- packages/vite/src/node/ssr/ssrTransform.ts | 12 +- packages/vite/src/node/utils.ts | 28 ++--- packages/vite/types/shims.d.ts | 2 +- packages/vite/types/ws.d.ts | 4 +- .../worker/__tests__/es/es-worker.spec.ts | 2 +- .../worker/__tests__/iife/worker.spec.ts | 2 +- pnpm-lock.yaml | 103 +++++++++++++++++- 81 files changed, 488 insertions(+), 371 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 63a8d282ba9b25..e75311e00ed7a2 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -8,6 +8,7 @@ module.exports = defineConfig({ 'plugin:node/recommended', 'plugin:@typescript-eslint/recommended' ], + plugins: ['import'], parser: '@typescript-eslint/parser', parserOptions: { sourceType: 'module', @@ -86,6 +87,18 @@ module.exports = defineConfig({ '@typescript-eslint/consistent-type-imports': [ 'error', { prefer: 'type-imports' } + ], + + 'import/order': 'error', + 'sort-imports': [ + 'error', + { + ignoreCase: false, + ignoreDeclarationSort: true, + ignoreMemberSort: false, + memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'], + allowSeparatedGroups: false + } ] }, overrides: [ diff --git a/package.json b/package.json index 62a66770cb750a..9904f281fbc4f1 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "scripts": { "preinstall": "npx only-allow pnpm", "format": "prettier --write .", - "lint": "eslint packages/*/{src,types}/**", + "lint": "eslint packages/*/{src,types}/** playground/**/__tests__/**/*.*", "test": "run-s test-unit test-serve test-build", "test-serve": "vitest run -c vitest.config.e2e.ts", "test-build": "cross-env VITE_TEST_BUILD=1 vitest run -c vitest.config.e2e.ts", @@ -48,6 +48,7 @@ "esbuild": "^0.14.38", "eslint": "^8.15.0", "eslint-define-config": "^1.4.0", + "eslint-plugin-import": "^2.26.0", "eslint-plugin-node": "^11.1.0", "execa": "^5.1.1", "fs-extra": "^10.1.0", @@ -80,10 +81,13 @@ "prettier --write --ignore-unknown" ], "packages/*/{src,types}/**/*.ts": [ - "eslint --ext .ts" + "eslint --fix" ], "packages/**/*.d.ts": [ - "eslint --ext .ts" + "eslint --fix" + ], + "playground/**/__tests__/**/*.ts": [ + "eslint --fix" ] }, "packageManager": "pnpm@6.32.11", diff --git a/packages/plugin-react/src/fast-refresh.ts b/packages/plugin-react/src/fast-refresh.ts index 4672e26f6264e3..6bff7d94fa023b 100644 --- a/packages/plugin-react/src/fast-refresh.ts +++ b/packages/plugin-react/src/fast-refresh.ts @@ -1,6 +1,6 @@ -import type { types as t } from '@babel/core' import fs from 'fs' import path from 'path' +import type { types as t } from '@babel/core' export const runtimePublicPath = '/@react-refresh' diff --git a/packages/plugin-react/src/jsx-runtime/babel-import-to-require.ts b/packages/plugin-react/src/jsx-runtime/babel-import-to-require.ts index dc7129862fd976..01e4cc4c37d478 100644 --- a/packages/plugin-react/src/jsx-runtime/babel-import-to-require.ts +++ b/packages/plugin-react/src/jsx-runtime/babel-import-to-require.ts @@ -1,5 +1,5 @@ import type * as babelCore from '@babel/core' -import type { types as t, Visitor } from '@babel/core' +import type { Visitor, types as t } from '@babel/core' /** * Replace this: diff --git a/packages/plugin-react/src/jsx-runtime/babel-restore-jsx.spec.ts b/packages/plugin-react/src/jsx-runtime/babel-restore-jsx.spec.ts index 391007f68c1329..b37ef698e5f215 100644 --- a/packages/plugin-react/src/jsx-runtime/babel-restore-jsx.spec.ts +++ b/packages/plugin-react/src/jsx-runtime/babel-restore-jsx.spec.ts @@ -1,6 +1,6 @@ -import babelRestoreJSX from './babel-restore-jsx' import * as babel from '@babel/core' -import { describe, it, expect } from 'vitest' +import { describe, expect, it } from 'vitest' +import babelRestoreJSX from './babel-restore-jsx' function jsx(code: string) { return babel.transform(code, { diff --git a/packages/plugin-react/src/jsx-runtime/restore-jsx.spec.ts b/packages/plugin-react/src/jsx-runtime/restore-jsx.spec.ts index 4f6a34ee60d915..fcad0f78c3373b 100644 --- a/packages/plugin-react/src/jsx-runtime/restore-jsx.spec.ts +++ b/packages/plugin-react/src/jsx-runtime/restore-jsx.spec.ts @@ -1,6 +1,6 @@ -import { restoreJSX } from './restore-jsx' import * as babel from '@babel/core' -import { describe, it, expect } from 'vitest' +import { describe, expect, it } from 'vitest' +import { restoreJSX } from './restore-jsx' async function jsx(sourceCode: string) { const [ast] = await restoreJSX(babel, sourceCode, 'test.js') diff --git a/packages/plugin-vue/src/handleHotUpdate.ts b/packages/plugin-vue/src/handleHotUpdate.ts index 7c2a7ef7ee2f1f..fbf7d2c1f5d490 100644 --- a/packages/plugin-vue/src/handleHotUpdate.ts +++ b/packages/plugin-vue/src/handleHotUpdate.ts @@ -1,12 +1,12 @@ import _debug from 'debug' import type { SFCBlock, SFCDescriptor } from 'vue/compiler-sfc' +import type { HmrContext, ModuleNode } from 'vite' import { createDescriptor, getDescriptor, setPrevDescriptor } from './utils/descriptorCache' import { getResolvedScript, setResolvedScript } from './script' -import type { ModuleNode, HmrContext } from 'vite' import type { ResolvedOptions } from '.' const debug = _debug('vite:hmr') diff --git a/packages/plugin-vue/src/main.ts b/packages/plugin-vue/src/main.ts index ccc700f184d0e4..8fa01e494f58e2 100644 --- a/packages/plugin-vue/src/main.ts +++ b/packages/plugin-vue/src/main.ts @@ -1,21 +1,21 @@ import path from 'path' import type { SFCBlock, SFCDescriptor } from 'vue/compiler-sfc' -import type { ResolvedOptions } from '.' +import type { PluginContext, SourceMap, TransformPluginContext } from 'rollup' +import { normalizePath } from '@rollup/pluginutils' +import type { RawSourceMap } from 'source-map' +import { SourceMapConsumer, SourceMapGenerator } from 'source-map' +import { transformWithEsbuild } from 'vite' import { createDescriptor, getPrevDescriptor, setSrcDescriptor } from './utils/descriptorCache' -import type { PluginContext, SourceMap, TransformPluginContext } from 'rollup' -import { normalizePath } from '@rollup/pluginutils' -import { resolveScript, isUseInlineTemplate } from './script' +import { isUseInlineTemplate, resolveScript } from './script' import { transformTemplateInMain } from './template' -import { isOnlyTemplateChanged, isEqualBlock } from './handleHotUpdate' -import type { RawSourceMap } from 'source-map' -import { SourceMapConsumer, SourceMapGenerator } from 'source-map' +import { isEqualBlock, isOnlyTemplateChanged } from './handleHotUpdate' import { createRollupError } from './utils/error' -import { transformWithEsbuild } from 'vite' import { EXPORT_HELPER_ID } from './helper' +import type { ResolvedOptions } from '.' // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export async function transformMain( diff --git a/packages/plugin-vue/src/script.ts b/packages/plugin-vue/src/script.ts index 93610dcf7f6a36..f5d488c22c279a 100644 --- a/packages/plugin-vue/src/script.ts +++ b/packages/plugin-vue/src/script.ts @@ -1,6 +1,6 @@ import type { SFCDescriptor, SFCScriptBlock } from 'vue/compiler-sfc' -import type { ResolvedOptions } from '.' import { resolveTemplateCompilerOptions } from './template' +import type { ResolvedOptions } from '.' // ssr and non ssr builds would output different script content const clientCache = new WeakMap() diff --git a/packages/plugin-vue/src/style.ts b/packages/plugin-vue/src/style.ts index cab75791bd54ec..aa124de17b8894 100644 --- a/packages/plugin-vue/src/style.ts +++ b/packages/plugin-vue/src/style.ts @@ -1,8 +1,8 @@ import type { SFCDescriptor } from 'vue/compiler-sfc' import type { ExistingRawSourceMap, TransformPluginContext } from 'rollup' -import type { ResolvedOptions } from '.' import type { RawSourceMap } from 'source-map' import { formatPostcssSourceMap } from 'vite' +import type { ResolvedOptions } from '.' // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export async function transformStyle( diff --git a/packages/plugin-vue/src/template.ts b/packages/plugin-vue/src/template.ts index c7eed9015d6339..c44da9e67228b0 100644 --- a/packages/plugin-vue/src/template.ts +++ b/packages/plugin-vue/src/template.ts @@ -1,15 +1,15 @@ import path from 'path' import slash from 'slash' import type { + CompilerOptions, SFCDescriptor, SFCTemplateCompileOptions, - SFCTemplateCompileResults, - CompilerOptions + SFCTemplateCompileResults } from 'vue/compiler-sfc' import type { PluginContext, TransformPluginContext } from 'rollup' -import type { ResolvedOptions } from '.' import { getResolvedScript } from './script' import { createRollupError } from './utils/error' +import type { ResolvedOptions } from '.' // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types export async function transformTemplateAsModule( diff --git a/packages/vite/src/node/__tests__/asset.spec.ts b/packages/vite/src/node/__tests__/asset.spec.ts index 8727aa6485eb26..a756cb12652739 100644 --- a/packages/vite/src/node/__tests__/asset.spec.ts +++ b/packages/vite/src/node/__tests__/asset.spec.ts @@ -1,4 +1,4 @@ -import { describe, test, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { assetFileNamesToFileName, getAssetHash } from '../plugins/asset' describe('getAssetHash', () => { diff --git a/packages/vite/src/node/__tests__/build.spec.ts b/packages/vite/src/node/__tests__/build.spec.ts index b49847f1d955a4..3b34851203e149 100644 --- a/packages/vite/src/node/__tests__/build.spec.ts +++ b/packages/vite/src/node/__tests__/build.spec.ts @@ -1,7 +1,7 @@ +import { resolve } from 'path' +import { describe, expect, test } from 'vitest' import type { LibraryFormats, LibraryOptions } from '../build' import { resolveLibFilename } from '../build' -import { resolve } from 'path' -import { describe, test, expect } from 'vitest' type FormatsToFileNames = [LibraryFormats, string][] const baseLibOptions: LibraryOptions = { diff --git a/packages/vite/src/node/__tests__/config.spec.ts b/packages/vite/src/node/__tests__/config.spec.ts index 83995ab28adcbd..4eaeae2822a1e3 100644 --- a/packages/vite/src/node/__tests__/config.spec.ts +++ b/packages/vite/src/node/__tests__/config.spec.ts @@ -1,7 +1,7 @@ +import { describe, expect, test } from 'vitest' import type { InlineConfig } from '..' -import type { UserConfigExport, UserConfig } from '../config' +import type { UserConfig, UserConfigExport } from '../config' import { mergeConfig, resolveConfig, resolveEnvPrefix } from '../config' -import { describe, test, expect } from 'vitest' describe('mergeConfig', () => { test('handles configs with different alias schemas', () => { diff --git a/packages/vite/src/node/__tests__/dev.spec.ts b/packages/vite/src/node/__tests__/dev.spec.ts index cdb0fc123f4b4f..3b3b3d14553da4 100644 --- a/packages/vite/src/node/__tests__/dev.spec.ts +++ b/packages/vite/src/node/__tests__/dev.spec.ts @@ -1,5 +1,5 @@ +import { describe, expect, test } from 'vitest' import { resolveConfig } from '..' -import { describe, test, expect } from 'vitest' describe('resolveBuildOptions in dev', () => { test('build.rollupOptions should not have input in lib', async () => { diff --git a/packages/vite/src/node/__tests__/plugins/css.spec.ts b/packages/vite/src/node/__tests__/plugins/css.spec.ts index 70ddb640b13218..e6b919a0094aa6 100644 --- a/packages/vite/src/node/__tests__/plugins/css.spec.ts +++ b/packages/vite/src/node/__tests__/plugins/css.spec.ts @@ -1,8 +1,8 @@ -import { cssUrlRE, cssPlugin, hoistAtRules } from '../../plugins/css' -import { resolveConfig } from '../../config' import fs from 'fs' import path from 'path' -import { describe, vi, test, expect } from 'vitest' +import { describe, expect, test, vi } from 'vitest' +import { resolveConfig } from '../../config' +import { cssPlugin, cssUrlRE, hoistAtRules } from '../../plugins/css' describe('search css url function', () => { test('some spaces before it', () => { diff --git a/packages/vite/src/node/__tests__/plugins/define.spec.ts b/packages/vite/src/node/__tests__/plugins/define.spec.ts index b9acc81cb790d5..932560a749f24d 100644 --- a/packages/vite/src/node/__tests__/plugins/define.spec.ts +++ b/packages/vite/src/node/__tests__/plugins/define.spec.ts @@ -1,4 +1,4 @@ -import { describe, test, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { definePlugin } from '../../plugins/define' import { resolveConfig } from '../../config' diff --git a/packages/vite/src/node/__tests__/plugins/dynamicImportVar/parse.test.ts b/packages/vite/src/node/__tests__/plugins/dynamicImportVar/parse.test.ts index ef1dcb2238a5b0..a0017d50ae6cd2 100644 --- a/packages/vite/src/node/__tests__/plugins/dynamicImportVar/parse.test.ts +++ b/packages/vite/src/node/__tests__/plugins/dynamicImportVar/parse.test.ts @@ -1,6 +1,6 @@ +import { resolve } from 'path' import { describe, expect, it } from 'vitest' import { transformDynamicImport } from '../../../plugins/dynamicImportVars' -import { resolve } from 'path' async function run(input: string) { const { glob, rawPattern } = await transformDynamicImport( diff --git a/packages/vite/src/node/__tests__/plugins/import.spec.ts b/packages/vite/src/node/__tests__/plugins/import.spec.ts index e232702d57d354..661f35902ab580 100644 --- a/packages/vite/src/node/__tests__/plugins/import.spec.ts +++ b/packages/vite/src/node/__tests__/plugins/import.spec.ts @@ -1,4 +1,4 @@ -import { describe, test, expect } from 'vitest' +import { describe, expect, test } from 'vitest' import { transformCjsImport } from '../../plugins/importAnalysis' describe('transformCjsImport', () => { diff --git a/packages/vite/src/node/__tests__/scan.spec.ts b/packages/vite/src/node/__tests__/scan.spec.ts index 8d5a275fca0292..0f9475562365d5 100644 --- a/packages/vite/src/node/__tests__/scan.spec.ts +++ b/packages/vite/src/node/__tests__/scan.spec.ts @@ -1,6 +1,6 @@ -import { scriptRE, commentRE, importsRE } from '../optimizer/scan' +import { describe, expect, test } from 'vitest' +import { commentRE, importsRE, scriptRE } from '../optimizer/scan' import { multilineCommentsRE, singlelineCommentsRE } from '../utils' -import { describe, test, expect } from 'vitest' describe('optimizer-scan:script-test', () => { const scriptContent = `import { defineComponent } from 'vue' diff --git a/packages/vite/src/node/__tests__/utils.spec.ts b/packages/vite/src/node/__tests__/utils.spec.ts index 29fd53f3c9a32e..56b5db32c2caf4 100644 --- a/packages/vite/src/node/__tests__/utils.spec.ts +++ b/packages/vite/src/node/__tests__/utils.spec.ts @@ -1,10 +1,10 @@ +import { describe, expect, test } from 'vitest' import { getPotentialTsSrcPaths, injectQuery, isWindows, resolveHostname } from '../utils' -import { describe, test, expect } from 'vitest' describe('injectQuery', () => { if (isWindows) { diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index cc254521b8d2aa..73db49c1c2b7ae 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -1,40 +1,40 @@ import fs from 'fs' import path from 'path' import colors from 'picocolors' -import type { InlineConfig, ResolvedConfig } from './config' -import { resolveConfig } from './config' import type { + ExternalOption, + ModuleFormat, + OutputOptions, Plugin, RollupBuild, + RollupError, RollupOptions, - RollupWarning, - WarningHandler, - OutputOptions, RollupOutput, - ExternalOption, - WatcherOptions, + RollupWarning, RollupWatcher, - RollupError, - ModuleFormat + WarningHandler, + WatcherOptions } from 'rollup' import type Rollup from 'rollup' +import type { Terser } from 'types/terser' +import commonjsPlugin from '@rollup/plugin-commonjs' +import type { RollupCommonJSOptions } from 'types/commonjs' +import type { RollupDynamicImportVarsOptions } from 'types/dynamicImportVars' +import type { TransformOptions } from 'esbuild' +import type { InlineConfig, ResolvedConfig } from './config' +import { resolveConfig } from './config' import { buildReporterPlugin } from './plugins/reporter' import { buildEsbuildPlugin } from './plugins/esbuild' import { terserPlugin } from './plugins/terser' -import type { Terser } from 'types/terser' import { copyDir, emptyDir, lookupFile, normalizePath } from './utils' import { manifestPlugin } from './plugins/manifest' -import commonjsPlugin from '@rollup/plugin-commonjs' -import type { RollupCommonJSOptions } from 'types/commonjs' -import type { RollupDynamicImportVarsOptions } from 'types/dynamicImportVars' import type { Logger } from './logger' -import type { TransformOptions } from 'esbuild' import { dataURIPlugin } from './plugins/dataUri' import { buildImportAnalysisPlugin } from './plugins/importAnalysisBuild' import { resolveSSRExternal, shouldExternalizeForSSR } from './ssr/ssrExternal' import { ssrManifestPlugin } from './ssr/ssrManifestPlugin' import type { DepOptimizationMetadata } from './optimizer' -import { getDepsCacheDir, findKnownImports } from './optimizer' +import { findKnownImports, getDepsCacheDir } from './optimizer' import { assetImportMetaUrlPlugin } from './plugins/assetImportMetaUrl' import { loadFallbackPlugin } from './plugins/loadFallback' import type { PackageData } from './packages' diff --git a/packages/vite/src/node/cli.ts b/packages/vite/src/node/cli.ts index 89412a825e9fc1..9ee807f505e016 100644 --- a/packages/vite/src/node/cli.ts +++ b/packages/vite/src/node/cli.ts @@ -1,6 +1,6 @@ +import { performance } from 'perf_hooks' import { cac } from 'cac' import colors from 'picocolors' -import { performance } from 'perf_hooks' import type { BuildOptions } from './build' import type { ServerOptions } from './server' import type { LogLevel } from './logger' diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index e7fcaefeb2a799..138514579f3ee0 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -1,45 +1,45 @@ import fs from 'fs' import path from 'path' +import { parse as parseUrl, pathToFileURL } from 'url' +import { performance } from 'perf_hooks' +import colors from 'picocolors' +import dotenv from 'dotenv' +import dotenvExpand from 'dotenv-expand' +import type { Alias, AliasOptions } from 'types/alias' +import { createFilter } from '@rollup/pluginutils' +import aliasPlugin from '@rollup/plugin-alias' +import { build } from 'esbuild' +import type { RollupOptions } from 'rollup' import type { Plugin } from './plugin' import type { BuildOptions } from './build' import { resolveBuildOptions } from './build' import type { ResolvedServerOptions, ServerOptions } from './server' import { resolveServerOptions } from './server' -import type { ResolvedPreviewOptions, PreviewOptions } from './preview' +import type { PreviewOptions, ResolvedPreviewOptions } from './preview' import { resolvePreviewOptions } from './preview' import type { CSSOptions } from './plugins/css' import { arraify, createDebugger, + dynamicImport, isExternalUrl, isObject, lookupFile, - normalizePath, - dynamicImport + normalizePath } from './utils' import { resolvePlugins } from './plugins' -import colors from 'picocolors' import type { ESBuildOptions } from './plugins/esbuild' -import dotenv from 'dotenv' -import dotenvExpand from 'dotenv-expand' -import type { Alias, AliasOptions } from 'types/alias' -import { CLIENT_ENTRY, ENV_ENTRY, DEFAULT_ASSETS_RE } from './constants' +import { CLIENT_ENTRY, DEFAULT_ASSETS_RE, ENV_ENTRY } from './constants' import type { InternalResolveOptions, ResolveOptions } from './plugins/resolve' import { resolvePlugin } from './plugins/resolve' -import type { Logger, LogLevel } from './logger' +import type { LogLevel, Logger } from './logger' import { createLogger } from './logger' import type { DepOptimizationOptions } from './optimizer' -import { createFilter } from '@rollup/pluginutils' -import type { ResolvedBuildOptions } from '.' -import { parse as parseUrl, pathToFileURL } from 'url' import type { JsonOptions } from './plugins/json' import type { PluginContainer } from './server/pluginContainer' import { createPluginContainer } from './server/pluginContainer' -import aliasPlugin from '@rollup/plugin-alias' -import { build } from 'esbuild' -import { performance } from 'perf_hooks' import type { PackageCache } from './packages' -import type { RollupOptions } from 'rollup' +import type { ResolvedBuildOptions } from '.' const debug = createDebugger('vite:config') diff --git a/packages/vite/src/node/http.ts b/packages/vite/src/node/http.ts index 18140b031937a9..1aa924282483b8 100644 --- a/packages/vite/src/node/http.ts +++ b/packages/vite/src/node/http.ts @@ -1,13 +1,13 @@ import fs, { promises as fsp } from 'fs' import path from 'path' import type { - OutgoingHttpHeaders as HttpServerHeaders, - Server as HttpServer + Server as HttpServer, + OutgoingHttpHeaders as HttpServerHeaders } from 'http' import type { ServerOptions as HttpsServerOptions } from 'https' +import type { Connect } from 'types/connect' import { isObject } from './utils' import type { ProxyOptions } from './server/middlewares/proxy' -import type { Connect } from 'types/connect' import type { Logger } from './logger' export interface CommonServerOptions { diff --git a/packages/vite/src/node/logger.ts b/packages/vite/src/node/logger.ts index 4f5784aeb527ff..c0f316ffed2698 100644 --- a/packages/vite/src/node/logger.ts +++ b/packages/vite/src/node/logger.ts @@ -1,14 +1,14 @@ /* eslint no-console: 0 */ -import colors from 'picocolors' import type { AddressInfo, Server } from 'net' import os from 'os' import readline from 'readline' +import colors from 'picocolors' import type { RollupError } from 'rollup' -import type { ResolvedConfig } from '.' import type { CommonServerOptions } from './http' import type { Hostname } from './utils' import { resolveHostname } from './utils' +import type { ResolvedConfig } from '.' export type LogType = 'error' | 'warn' | 'info' export type LogLevel = LogType | 'silent' diff --git a/packages/vite/src/node/optimizer/esbuildDepPlugin.ts b/packages/vite/src/node/optimizer/esbuildDepPlugin.ts index 4303be0ec876e7..9fcc649ef394e3 100644 --- a/packages/vite/src/node/optimizer/esbuildDepPlugin.ts +++ b/packages/vite/src/node/optimizer/esbuildDepPlugin.ts @@ -1,13 +1,13 @@ import path from 'path' -import type { Plugin, ImportKind } from 'esbuild' +import type { ImportKind, Plugin } from 'esbuild' import { KNOWN_ASSET_TYPES } from '../constants' import type { ResolvedConfig } from '..' import { - isRunningWithYarnPnp, flattenId, - normalizePath, isExternalUrl, - moduleListContains + isRunningWithYarnPnp, + moduleListContains, + normalizePath } from '../utils' import { browserExternalId } from '../plugins/resolve' import type { ExportsData } from '.' diff --git a/packages/vite/src/node/optimizer/index.ts b/packages/vite/src/node/optimizer/index.ts index 33419e0d186487..53bffb13e604d0 100644 --- a/packages/vite/src/node/optimizer/index.ts +++ b/packages/vite/src/node/optimizer/index.ts @@ -1,27 +1,27 @@ import fs from 'fs' import path from 'path' +import { createHash } from 'crypto' +import { performance } from 'perf_hooks' import _debug from 'debug' import colors from 'picocolors' -import { createHash } from 'crypto' import type { BuildOptions as EsbuildBuildOptions } from 'esbuild' import { build } from 'esbuild' +import { init, parse } from 'es-module-lexer' import type { ResolvedConfig } from '../config' import { createDebugger, emptyDir, - lookupFile, - normalizePath, - writeFile, flattenId, + lookupFile, normalizeId, + normalizePath, removeDirSync, - renameDir + renameDir, + writeFile } from '../utils' +import { transformWithEsbuild } from '../plugins/esbuild' import { esbuildDepPlugin } from './esbuildDepPlugin' -import { init, parse } from 'es-module-lexer' import { scanImports } from './scan' -import { transformWithEsbuild } from '../plugins/esbuild' -import { performance } from 'perf_hooks' export const debuggerViteDeps = createDebugger('vite:deps') const debug = debuggerViteDeps diff --git a/packages/vite/src/node/optimizer/registerMissing.ts b/packages/vite/src/node/optimizer/registerMissing.ts index 53cd7e981b1b61..1efb9e02261ae7 100644 --- a/packages/vite/src/node/optimizer/registerMissing.ts +++ b/packages/vite/src/node/optimizer/registerMissing.ts @@ -1,24 +1,24 @@ import colors from 'picocolors' import _debug from 'debug' +import type { ViteDevServer } from '..' import { - runOptimizeDeps, - getOptimizedDepPath, - getHash, - depsFromOptimizedDepInfo, - newDepOptimizationProcessing, - loadCachedDepOptimizationMetadata, - createOptimizedDepsMetadata, addOptimizedDepInfo, - discoverProjectDependencies, + createOptimizedDepsMetadata, + debuggerViteDeps as debug, + depsFromOptimizedDepInfo, depsLogString, - debuggerViteDeps as debug + discoverProjectDependencies, + getHash, + getOptimizedDepPath, + loadCachedDepOptimizationMetadata, + newDepOptimizationProcessing, + runOptimizeDeps } from '.' import type { DepOptimizationProcessing, OptimizedDepInfo, OptimizedDeps } from '.' -import type { ViteDevServer } from '..' const isDebugEnabled = _debug('vite:deps').enabled diff --git a/packages/vite/src/node/optimizer/scan.ts b/packages/vite/src/node/optimizer/scan.ts index 8dfac45c4e6612..157c8d28db1083 100644 --- a/packages/vite/src/node/optimizer/scan.ts +++ b/packages/vite/src/node/optimizer/scan.ts @@ -1,32 +1,32 @@ import fs from 'fs' import path from 'path' +import { performance } from 'perf_hooks' import glob from 'fast-glob' -import type { ResolvedConfig } from '..' -import type { Loader, Plugin, OnLoadResult } from 'esbuild' +import type { Loader, OnLoadResult, Plugin } from 'esbuild' import { build } from 'esbuild' +import colors from 'picocolors' +import type { ResolvedConfig } from '..' import { - KNOWN_ASSET_TYPES, JS_TYPES_RE, - SPECIAL_QUERY_RE, - OPTIMIZABLE_ENTRY_RE + KNOWN_ASSET_TYPES, + OPTIMIZABLE_ENTRY_RE, + SPECIAL_QUERY_RE } from '../constants' import { + cleanUrl, createDebugger, - normalizePath, + dataUrlRE, + externalRE, isObject, - cleanUrl, moduleListContains, - externalRE, - dataUrlRE, multilineCommentsRE, + normalizePath, singlelineCommentsRE, - virtualModuleRE, - virtualModulePrefix + virtualModulePrefix, + virtualModuleRE } from '../utils' import type { PluginContainer } from '../server/pluginContainer' import { createPluginContainer } from '../server/pluginContainer' -import { performance } from 'perf_hooks' -import colors from 'picocolors' import { transformGlobImport } from '../plugins/importMetaGlob' const debug = createDebugger('vite:deps') diff --git a/packages/vite/src/node/plugin.ts b/packages/vite/src/node/plugin.ts index 3bfe789a299987..adf647d6d5500f 100644 --- a/packages/vite/src/node/plugin.ts +++ b/packages/vite/src/node/plugin.ts @@ -1,19 +1,19 @@ -import type { UserConfig } from './config' import type { CustomPluginOptions, LoadResult, - Plugin as RollupPlugin, PluginContext, ResolveIdResult, + Plugin as RollupPlugin, TransformPluginContext, TransformResult } from 'rollup' +import type { UserConfig } from './config' import type { ServerHook } from './server' import type { IndexHtmlTransform } from './plugins/html' import type { ModuleNode } from './server/moduleGraph' -import type { ConfigEnv, ResolvedConfig } from './' import type { HmrContext } from './server/hmr' import type { PreviewServerHook } from './preview' +import type { ConfigEnv, ResolvedConfig } from './' /** * Vite plugins extends the Rollup plugin interface with a few extra diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts index f2eed2bc28bc5a..db62325509f308 100644 --- a/packages/vite/src/node/plugins/asset.ts +++ b/packages/vite/src/node/plugins/asset.ts @@ -1,14 +1,14 @@ import path from 'path' import { parse as parseUrl } from 'url' import fs, { promises as fsp } from 'fs' +import { createHash } from 'crypto' import * as mrmime from 'mrmime' +import type { OutputOptions, PluginContext } from 'rollup' +import MagicString from 'magic-string' import type { Plugin } from '../plugin' import type { ResolvedConfig } from '../config' import { cleanUrl } from '../utils' import { FS_PREFIX } from '../constants' -import type { OutputOptions, PluginContext } from 'rollup' -import MagicString from 'magic-string' -import { createHash } from 'crypto' import { normalizePath } from '../utils' export const assetUrlRE = /__VITE_ASSET__([a-z\d]{8})__(?:\$_(.*?)__)?/g diff --git a/packages/vite/src/node/plugins/assetImportMetaUrl.ts b/packages/vite/src/node/plugins/assetImportMetaUrl.ts index 73932bfb29a411..2bff4f5e7b682e 100644 --- a/packages/vite/src/node/plugins/assetImportMetaUrl.ts +++ b/packages/vite/src/node/plugins/assetImportMetaUrl.ts @@ -1,9 +1,9 @@ -import type { Plugin } from '../plugin' -import MagicString from 'magic-string' import path from 'path' -import { fileToUrl } from './asset' -import type { ResolvedConfig } from '../config' +import MagicString from 'magic-string' import { stripLiteral } from 'strip-literal' +import type { Plugin } from '../plugin' +import type { ResolvedConfig } from '../config' +import { fileToUrl } from './asset' /** * Convert `new URL('./foo.png', import.meta.url)` to its resolved built URL diff --git a/packages/vite/src/node/plugins/clientInjections.ts b/packages/vite/src/node/plugins/clientInjections.ts index 1c9a0d393327c7..eb5c7183c2ac59 100644 --- a/packages/vite/src/node/plugins/clientInjections.ts +++ b/packages/vite/src/node/plugins/clientInjections.ts @@ -2,7 +2,7 @@ import path from 'path' import type { Plugin } from '../plugin' import type { ResolvedConfig } from '../config' import { CLIENT_ENTRY, ENV_ENTRY } from '../constants' -import { normalizePath, isObject } from '../utils' +import { isObject, normalizePath } from '../utils' // ids in transform are normalized to unix style const normalizedClientEntry = normalizePath(CLIENT_ENTRY) diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index 8c2575c970d359..bee3e37d4cbe38 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -1,21 +1,6 @@ import fs from 'fs' import path from 'path' import glob from 'fast-glob' -import { - // createDebugger, - isExternalUrl, - asyncReplace, - cleanUrl, - generateCodeFrame, - isDataUrl, - isObject, - normalizePath, - processSrcSet, - parseRequest, - combineSourcemaps -} from '../utils' -import type { Plugin } from '../plugin' -import type { ResolvedConfig } from '../config' import postcssrc from 'postcss-load-config' import type { ExistingRawSourceMap, @@ -27,15 +12,6 @@ import type { } from 'rollup' import { dataToEsm } from '@rollup/pluginutils' import colors from 'picocolors' -import { CLIENT_PUBLIC_PATH, SPECIAL_QUERY_RE } from '../constants' -import type { ResolveFn, ViteDevServer } from '../' -import { - getAssetFilename, - assetUrlRE, - fileToUrl, - checkPublicFile, - getAssetHash -} from './asset' import MagicString from 'magic-string' import type * as PostCSS from 'postcss' import type Sass from 'sass' @@ -44,12 +20,35 @@ import type Sass from 'sass' import type Stylus from 'stylus' // eslint-disable-line node/no-extraneous-import import type Less from 'less' import type { Alias } from 'types/alias' -import type { ModuleNode } from '../server/moduleGraph' -import { transform, formatMessages } from 'esbuild' -import { addToHTMLProxyTransformResult } from './html' -import { injectSourcesContent, getCodeWithSourcemap } from '../server/sourcemap' +import { formatMessages, transform } from 'esbuild' import type { RawSourceMap } from '@ampproject/remapping' +import { getCodeWithSourcemap, injectSourcesContent } from '../server/sourcemap' +import type { ModuleNode } from '../server/moduleGraph' +import type { ResolveFn, ViteDevServer } from '../' +import { CLIENT_PUBLIC_PATH, SPECIAL_QUERY_RE } from '../constants' +import type { ResolvedConfig } from '../config' +import type { Plugin } from '../plugin' +import { + asyncReplace, + cleanUrl, + combineSourcemaps, + generateCodeFrame, + isDataUrl, + isExternalUrl, + isObject, + normalizePath, + parseRequest, + processSrcSet +} from '../utils' import { emptyCssComments } from '../utils' +import { addToHTMLProxyTransformResult } from './html' +import { + assetUrlRE, + checkPublicFile, + fileToUrl, + getAssetFilename, + getAssetHash +} from './asset' // const debug = createDebugger('vite:css') diff --git a/packages/vite/src/node/plugins/dataUri.ts b/packages/vite/src/node/plugins/dataUri.ts index 5f5f40146097df..84999d586c4f34 100644 --- a/packages/vite/src/node/plugins/dataUri.ts +++ b/packages/vite/src/node/plugins/dataUri.ts @@ -1,8 +1,8 @@ // This is based on @rollup/plugin-data-uri // MIT Licensed https://github.com/rollup/plugins/blob/master/LICENSE // ref https://github.com/vitejs/vite/issues/1428#issuecomment-757033808 -import type { Plugin } from '../plugin' import { URL } from 'url' +import type { Plugin } from '../plugin' const dataUriRE = /^([^/]+\/[^;,]+)(;base64)?,([\s\S]*)$/ diff --git a/packages/vite/src/node/plugins/dynamicImportVars.ts b/packages/vite/src/node/plugins/dynamicImportVars.ts index c33590cf0343f4..7559d637ce648e 100644 --- a/packages/vite/src/node/plugins/dynamicImportVars.ts +++ b/packages/vite/src/node/plugins/dynamicImportVars.ts @@ -2,12 +2,12 @@ import { posix } from 'path' import MagicString from 'magic-string' import { init, parse as parseImports } from 'es-module-lexer' import type { ImportSpecifier } from 'es-module-lexer' -import type { Plugin } from '../plugin' -import type { ResolvedConfig } from '../config' -import { normalizePath, parseRequest, requestQuerySplitRE } from '../utils' import { parse as parseJS } from 'acorn' import { createFilter } from '@rollup/pluginutils' import { dynamicImportToGlob } from '@rollup/plugin-dynamic-import-vars' +import type { Plugin } from '../plugin' +import type { ResolvedConfig } from '../config' +import { normalizePath, parseRequest, requestQuerySplitRE } from '../utils' export const dynamicImportHelperId = '/@vite/dynamic-import-helper' diff --git a/packages/vite/src/node/plugins/esbuild.ts b/packages/vite/src/node/plugins/esbuild.ts index 6fdf74ee05c4ad..5250f4baf7687b 100644 --- a/packages/vite/src/node/plugins/esbuild.ts +++ b/packages/vite/src/node/plugins/esbuild.ts @@ -1,13 +1,19 @@ import path from 'path' import colors from 'picocolors' -import type { Plugin } from '../plugin' import type { - Message, Loader, + Message, TransformOptions, TransformResult } from 'esbuild' import { transform } from 'esbuild' +import type { RawSourceMap } from '@ampproject/remapping' +import type { SourceMap } from 'rollup' +import { createFilter } from '@rollup/pluginutils' +import type { TSConfckParseOptions, TSConfckParseResult } from 'tsconfck' +import { TSConfckParseError, findAll, parse } from 'tsconfck' +import { combineSourcemaps } from '../utils' +import type { ResolvedConfig, ViteDevServer } from '..' import { cleanUrl, createDebugger, @@ -15,13 +21,7 @@ import { generateCodeFrame, toUpperCaseDriveLetter } from '../utils' -import type { RawSourceMap } from '@ampproject/remapping' -import type { SourceMap } from 'rollup' -import type { ResolvedConfig, ViteDevServer } from '..' -import { createFilter } from '@rollup/pluginutils' -import { combineSourcemaps } from '../utils' -import type { TSConfckParseOptions, TSConfckParseResult } from 'tsconfck' -import { parse, findAll, TSConfckParseError } from 'tsconfck' +import type { Plugin } from '../plugin' import { searchForWorkspaceRoot } from '..' const debug = createDebugger('vite:esbuild') diff --git a/packages/vite/src/node/plugins/html.ts b/packages/vite/src/node/plugins/html.ts index 2f1e3af34babb4..ea178287f672a1 100644 --- a/packages/vite/src/node/plugins/html.ts +++ b/packages/vite/src/node/plugins/html.ts @@ -1,6 +1,4 @@ import path from 'path' -import type { Plugin } from '../plugin' -import type { ViteDevServer } from '../server' import type { OutputAsset, OutputBundle, @@ -8,6 +6,18 @@ import type { RollupError, SourceMapInput } from 'rollup' +import MagicString from 'magic-string' +import type { + AttributeNode, + CompilerError, + ElementNode, + NodeTransform, + TextNode +} from '@vue/compiler-dom' +import { NodeTypes } from '@vue/compiler-dom' +import { stripLiteral } from 'strip-literal' +import type { Plugin } from '../plugin' +import type { ViteDevServer } from '../server' import { cleanUrl, generateCodeFrame, @@ -18,25 +28,15 @@ import { slash } from '../utils' import type { ResolvedConfig } from '../config' -import MagicString from 'magic-string' import { - checkPublicFile, assetUrlRE, - urlToBuiltUrl, + checkPublicFile, getAssetFilename, - getAssetHash + getAssetHash, + urlToBuiltUrl } from './asset' import { isCSSRequest } from './css' import { modulePreloadPolyfillId } from './modulePreloadPolyfill' -import type { - AttributeNode, - NodeTransform, - ElementNode, - CompilerError, - TextNode -} from '@vue/compiler-dom' -import { NodeTypes } from '@vue/compiler-dom' -import { stripLiteral } from 'strip-literal' interface ScriptAssetsUrl { start: number diff --git a/packages/vite/src/node/plugins/importAnalysis.ts b/packages/vite/src/node/plugins/importAnalysis.ts index f12426aa923cfe..d33235805aa5ee 100644 --- a/packages/vite/src/node/plugins/importAnalysis.ts +++ b/packages/vite/src/node/plugins/importAnalysis.ts @@ -1,56 +1,56 @@ import fs from 'fs' import path from 'path' -import type { Plugin } from '../plugin' -import type { ResolvedConfig } from '../config' +import { performance } from 'perf_hooks' import colors from 'picocolors' import MagicString from 'magic-string' import type { ImportSpecifier } from 'es-module-lexer' import { init, parse as parseImports } from 'es-module-lexer' -import { isCSSRequest, isDirectCSSRequest } from './css' +import { parse as parseJS } from 'acorn' +import type { Node } from 'estree' +import { makeLegalIdentifier } from '@rollup/pluginutils' +import type { ViteDevServer } from '..' +import { + CLIENT_DIR, + CLIENT_PUBLIC_PATH, + DEP_VERSION_RE, + FS_PREFIX, + NULL_BYTE_PLACEHOLDER, + VALID_ID_PREFIX +} from '../constants' +import { + debugHmr, + handlePrunedModules, + lexAcceptedHmrDeps +} from '../server/hmr' import { - isBuiltin, cleanUrl, createDebugger, + fsPathFromUrl, generateCodeFrame, injectQuery, + isBuiltin, isDataUrl, isExternalUrl, isJSRequest, - prettifyUrl, - timeFrom, + moduleListContains, normalizePath, + prettifyUrl, removeImportQuery, - unwrapId, - moduleListContains, - fsPathFromUrl + timeFrom, + unwrapId } from '../utils' -import { - debugHmr, - handlePrunedModules, - lexAcceptedHmrDeps -} from '../server/hmr' -import { - FS_PREFIX, - CLIENT_DIR, - CLIENT_PUBLIC_PATH, - DEP_VERSION_RE, - VALID_ID_PREFIX, - NULL_BYTE_PLACEHOLDER -} from '../constants' -import { ERR_OUTDATED_OPTIMIZED_DEP } from './optimizedDeps' -import type { ViteDevServer } from '..' -import { checkPublicFile } from './asset' -import { parse as parseJS } from 'acorn' -import type { Node } from 'estree' -import { makeLegalIdentifier } from '@rollup/pluginutils' +import type { ResolvedConfig } from '../config' +import type { Plugin } from '../plugin' import { shouldExternalizeForSSR } from '../ssr/ssrExternal' -import { performance } from 'perf_hooks' import { transformRequest } from '../server/transformRequest' import { - isOptimizedDepFile, getDepsCacheDir, + isOptimizedDepFile, optimizedDepNeedsInterop } from '../optimizer' +import { checkPublicFile } from './asset' +import { ERR_OUTDATED_OPTIMIZED_DEP } from './optimizedDeps' +import { isCSSRequest, isDirectCSSRequest } from './css' const isDebug = !!process.env.DEBUG const debug = createDebugger('vite:import-analysis') diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts index 5b7d738c2da264..36696986a4aacf 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -1,14 +1,14 @@ import path from 'path' -import type { ResolvedConfig } from '../config' -import type { Plugin } from '../plugin' import MagicString from 'magic-string' import type { ImportSpecifier } from 'es-module-lexer' import { init, parse as parseImports } from 'es-module-lexer' import type { OutputChunk, SourceMap } from 'rollup' -import { isCSSRequest, removedPureCssFilesCache } from './css' -import { bareImportRE, combineSourcemaps } from '../utils' import type { RawSourceMap } from '@ampproject/remapping' +import { bareImportRE, combineSourcemaps } from '../utils' +import type { Plugin } from '../plugin' +import type { ResolvedConfig } from '../config' import { genSourceMapUrl } from '../server/sourcemap' +import { isCSSRequest, removedPureCssFilesCache } from './css' /** * A flag for injected helpers. This flag will be set to `false` if the output diff --git a/packages/vite/src/node/plugins/importMetaGlob.ts b/packages/vite/src/node/plugins/importMetaGlob.ts index 140eb6ca6d1273..3282014d2ffca3 100644 --- a/packages/vite/src/node/plugins/importMetaGlob.ts +++ b/packages/vite/src/node/plugins/importMetaGlob.ts @@ -6,13 +6,13 @@ import { parseExpressionAt } from 'acorn' import MagicString from 'magic-string' import fg from 'fast-glob' import { stringifyQuery } from 'ufo' +import type { GeneralImportGlobOptions } from 'types/importGlob' import type { Plugin } from '../plugin' import type { ViteDevServer } from '../server' import type { ModuleNode } from '../server/moduleGraph' import type { ResolvedConfig } from '../config' -import { isCSSRequest } from './css' -import type { GeneralImportGlobOptions } from 'types/importGlob' import { normalizePath, slash } from '../utils' +import { isCSSRequest } from './css' export interface ParsedImportGlob { match: RegExpMatchArray diff --git a/packages/vite/src/node/plugins/index.ts b/packages/vite/src/node/plugins/index.ts index 3fd283b07b4e47..b4a298bc334d41 100644 --- a/packages/vite/src/node/plugins/index.ts +++ b/packages/vite/src/node/plugins/index.ts @@ -1,6 +1,6 @@ +import aliasPlugin from '@rollup/plugin-alias' import type { ResolvedConfig } from '../config' import type { Plugin } from '../plugin' -import aliasPlugin from '@rollup/plugin-alias' import { jsonPlugin } from './json' import { resolvePlugin } from './resolve' import { optimizedDepsPlugin } from './optimizedDeps' diff --git a/packages/vite/src/node/plugins/optimizedDeps.ts b/packages/vite/src/node/plugins/optimizedDeps.ts index adab1bd9756251..8d4e98b865bf28 100644 --- a/packages/vite/src/node/plugins/optimizedDeps.ts +++ b/packages/vite/src/node/plugins/optimizedDeps.ts @@ -1,6 +1,6 @@ import { promises as fs } from 'fs' -import type { Plugin } from '../plugin' import colors from 'picocolors' +import type { Plugin } from '../plugin' import { DEP_VERSION_RE } from '../constants' import { cleanUrl, createDebugger } from '../utils' import { isOptimizedDepFile, optimizedDepInfoFromFile } from '../optimizer' diff --git a/packages/vite/src/node/plugins/reporter.ts b/packages/vite/src/node/plugins/reporter.ts index 808e8040cba9f7..da6da4b8a349e3 100644 --- a/packages/vite/src/node/plugins/reporter.ts +++ b/packages/vite/src/node/plugins/reporter.ts @@ -1,7 +1,7 @@ import path from 'path' -import colors from 'picocolors' import { gzip } from 'zlib' import { promisify } from 'util' +import colors from 'picocolors' import type { Plugin } from 'rollup' import type { ResolvedConfig } from '../config' import { normalizePath } from '../utils' diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index 98a2cd8a9f776e..e50cd68ace76b0 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -1,34 +1,36 @@ import fs from 'fs' import path from 'path' -import type { Plugin } from '../plugin' import colors from 'picocolors' +import type { PartialResolvedId } from 'rollup' +import { resolve as _resolveExports } from 'resolve.exports' +import type { Plugin } from '../plugin' import { - FS_PREFIX, - SPECIAL_QUERY_RE, DEFAULT_EXTENSIONS, DEFAULT_MAIN_FIELDS, + DEP_VERSION_RE, + FS_PREFIX, OPTIMIZABLE_ENTRY_RE, - DEP_VERSION_RE + SPECIAL_QUERY_RE } from '../constants' import { - isBuiltin, bareImportRE, + cleanUrl, createDebugger, + ensureVolumeInPath, + fsPathFromId, + getPotentialTsSrcPaths, injectQuery, + isBuiltin, + isDataUrl, isExternalUrl, + isFileReadable, isObject, + isPossibleTsOutput, + isTsRequest, + nestedResolveFrom, normalizePath, - fsPathFromId, - ensureVolumeInPath, resolveFrom, - isDataUrl, - cleanUrl, - slash, - nestedResolveFrom, - isFileReadable, - isTsRequest, - isPossibleTsOutput, - getPotentialTsSrcPaths + slash } from '../utils' import { createIsOptimizedDepUrl, @@ -37,9 +39,7 @@ import { optimizedDepInfoFromId } from '../optimizer' import type { OptimizedDepInfo } from '../optimizer' -import type { ViteDevServer, SSROptions } from '..' -import type { PartialResolvedId } from 'rollup' -import { resolve as _resolveExports } from 'resolve.exports' +import type { SSROptions, ViteDevServer } from '..' import type { PackageCache, PackageData } from '../packages' import { loadPackageData, resolvePackageData } from '../packages' diff --git a/packages/vite/src/node/plugins/splitVendorChunk.ts b/packages/vite/src/node/plugins/splitVendorChunk.ts index 3f7c16067a5f8e..7aa389da8377e2 100644 --- a/packages/vite/src/node/plugins/splitVendorChunk.ts +++ b/packages/vite/src/node/plugins/splitVendorChunk.ts @@ -1,11 +1,11 @@ -import type { UserConfig } from '../../node' -import type { Plugin } from '../plugin' import type { - OutputOptions, GetManualChunk, GetManualChunkApi, - GetModuleInfo + GetModuleInfo, + OutputOptions } from 'rollup' +import type { UserConfig } from '../../node' +import type { Plugin } from '../plugin' import { isCSSRequest } from './css' // Use splitVendorChunkPlugin() to get the same manualChunks strategy as Vite 2.7 diff --git a/packages/vite/src/node/plugins/terser.ts b/packages/vite/src/node/plugins/terser.ts index 29f4d5c172ce67..5ec3e86b57f96d 100644 --- a/packages/vite/src/node/plugins/terser.ts +++ b/packages/vite/src/node/plugins/terser.ts @@ -1,6 +1,6 @@ -import type { Plugin } from '../plugin' import { Worker } from 'okie' import type { Terser } from 'types/terser' +import type { Plugin } from '../plugin' import type { ResolvedConfig } from '..' export function terserPlugin(config: ResolvedConfig): Plugin { diff --git a/packages/vite/src/node/plugins/worker.ts b/packages/vite/src/node/plugins/worker.ts index f0850242de9a90..b5b33e27bc860b 100644 --- a/packages/vite/src/node/plugins/worker.ts +++ b/packages/vite/src/node/plugins/worker.ts @@ -1,12 +1,12 @@ +import path from 'path' +import type Rollup from 'rollup' +import type { EmittedFile, TransformPluginContext } from 'rollup' import type { ResolvedConfig } from '../config' import type { Plugin } from '../plugin' -import { fileToUrl, getAssetHash } from './asset' import { cleanUrl, injectQuery, parseRequest } from '../utils' -import type Rollup from 'rollup' import { ENV_PUBLIC_PATH } from '../constants' -import path from 'path' import { onRollupWarning } from '../build' -import type { TransformPluginContext, EmittedFile } from 'rollup' +import { fileToUrl, getAssetHash } from './asset' interface WorkerCache { // save worker bundle emitted files avoid overwrites the same file. diff --git a/packages/vite/src/node/plugins/workerImportMetaUrl.ts b/packages/vite/src/node/plugins/workerImportMetaUrl.ts index bfd8c22dcad372..48d38dd0a1359e 100644 --- a/packages/vite/src/node/plugins/workerImportMetaUrl.ts +++ b/packages/vite/src/node/plugins/workerImportMetaUrl.ts @@ -1,16 +1,16 @@ +import path from 'path' import JSON5 from 'json5' +import MagicString from 'magic-string' +import type { RollupError } from 'rollup' +import { stripLiteral } from 'strip-literal' import type { ResolvedConfig } from '../config' import type { Plugin } from '../plugin' -import { fileToUrl } from './asset' import { cleanUrl, injectQuery } from '../utils' -import path from 'path' -import { workerFileToUrl } from './worker' import { parseRequest } from '../utils' import { ENV_ENTRY, ENV_PUBLIC_PATH } from '../constants' -import MagicString from 'magic-string' import type { ViteDevServer } from '..' -import type { RollupError } from 'rollup' -import { stripLiteral } from 'strip-literal' +import { workerFileToUrl } from './worker' +import { fileToUrl } from './asset' type WorkerType = 'classic' | 'module' | 'ignore' const ignoreFlagRE = /\/\*\s*@vite-ignore\s*\*\// diff --git a/packages/vite/src/node/preview.ts b/packages/vite/src/node/preview.ts index e48f2e6231933f..33825200bc1823 100644 --- a/packages/vite/src/node/preview.ts +++ b/packages/vite/src/node/preview.ts @@ -1,20 +1,20 @@ import path from 'path' +import type { Server } from 'http' +import type * as http from 'http' import sirv from 'sirv' import connect from 'connect' -import compression from './server/middlewares/compression' -import type { Server } from 'http' -import type { InlineConfig, ResolvedConfig } from '.' -import { resolveConfig } from '.' import type { Connect } from 'types/connect' +import corsMiddleware from 'cors' import type { ResolvedServerOptions } from './server' import type { CommonServerOptions } from './http' -import { resolveHttpsConfig, resolveHttpServer, httpServerStart } from './http' +import { httpServerStart, resolveHttpServer, resolveHttpsConfig } from './http' import { openBrowser } from './server/openBrowser' -import corsMiddleware from 'cors' +import compression from './server/middlewares/compression' import { proxyMiddleware } from './server/middlewares/proxy' import { resolveHostname } from './utils' import { printCommonServerUrls } from './logger' -import type * as http from 'http' +import { resolveConfig } from '.' +import type { InlineConfig, ResolvedConfig } from '.' export interface PreviewOptions extends CommonServerOptions {} diff --git a/packages/vite/src/node/server/__tests__/pluginContainer.spec.ts b/packages/vite/src/node/server/__tests__/pluginContainer.spec.ts index ab0555ae7982e9..c6f81e9107ef0b 100644 --- a/packages/vite/src/node/server/__tests__/pluginContainer.spec.ts +++ b/packages/vite/src/node/server/__tests__/pluginContainer.spec.ts @@ -1,10 +1,10 @@ +import { beforeEach, describe, expect, it } from 'vitest' import type { UserConfig } from '../../config' import { resolveConfig } from '../../config' import type { Plugin } from '../../plugin' import { ModuleGraph } from '../moduleGraph' import type { PluginContainer } from '../pluginContainer' import { createPluginContainer } from '../pluginContainer' -import { describe, it, expect, beforeEach } from 'vitest' let resolveId: (id: string) => any let moduleGraph: ModuleGraph diff --git a/packages/vite/src/node/server/__tests__/search-root.spec.ts b/packages/vite/src/node/server/__tests__/search-root.spec.ts index ff9366e8791534..066b64917a8b92 100644 --- a/packages/vite/src/node/server/__tests__/search-root.spec.ts +++ b/packages/vite/src/node/server/__tests__/search-root.spec.ts @@ -1,6 +1,6 @@ -import { searchForWorkspaceRoot } from '../searchRoot' import { resolve } from 'path' -import { describe, test, expect } from 'vitest' +import { describe, expect, test } from 'vitest' +import { searchForWorkspaceRoot } from '../searchRoot' describe('searchForWorkspaceRoot', () => { test('lerna', () => { diff --git a/packages/vite/src/node/server/hmr.ts b/packages/vite/src/node/server/hmr.ts index da2ba9f99bd753..23ed627a79f3e6 100644 --- a/packages/vite/src/node/server/hmr.ts +++ b/packages/vite/src/node/server/hmr.ts @@ -1,15 +1,15 @@ import fs from 'fs' import path from 'path' +import type { Server } from 'http' import colors from 'picocolors' -import type { ViteDevServer } from '..' -import { createDebugger, normalizePath, unique } from '../utils' -import type { ModuleNode } from './moduleGraph' import type { Update } from 'types/hmrPayload' -import { CLIENT_DIR } from '../constants' import type { RollupError } from 'rollup' -import type { Server } from 'http' +import { CLIENT_DIR } from '../constants' +import { createDebugger, normalizePath, unique } from '../utils' +import type { ViteDevServer } from '..' import { isCSSRequest } from '../plugins/css' import { getAffectedGlobModules } from '../plugins/importMetaGlob' +import type { ModuleNode } from './moduleGraph' export const debugHmr = createDebugger('vite:hmr') diff --git a/packages/vite/src/node/server/index.ts b/packages/vite/src/node/server/index.ts index 021fd8c25901b5..aaf0533337c700 100644 --- a/packages/vite/src/node/server/index.ts +++ b/packages/vite/src/node/server/index.ts @@ -2,18 +2,37 @@ import fs from 'fs' import path from 'path' import type * as net from 'net' import type * as http from 'http' +import type { AddressInfo } from 'net' +import { performance } from 'perf_hooks' import connect from 'connect' import corsMiddleware from 'cors' import colors from 'picocolors' -import type { AddressInfo } from 'net' import chokidar from 'chokidar' +import type { FSWatcher, WatchOptions } from 'types/chokidar' +import type { Connect } from 'types/connect' +import launchEditorMiddleware from 'launch-editor-middleware' +import type { SourceMap } from 'rollup' import type { CommonServerOptions } from '../http' -import { resolveHttpsConfig, resolveHttpServer, httpServerStart } from '../http' +import { httpServerStart, resolveHttpServer, resolveHttpsConfig } from '../http' import type { InlineConfig, ResolvedConfig } from '../config' import { mergeConfig, resolveConfig } from '../config' +import { isParentDirectory, normalizePath } from '../utils' +import { ssrLoadModule } from '../ssr/ssrModuleLoader' +import { resolveSSRExternal } from '../ssr/ssrExternal' +import { + rebindErrorStacktrace, + ssrRewriteStacktrace +} from '../ssr/ssrStacktrace' +import { ssrTransform } from '../ssr/ssrTransform' +import { createOptimizedDeps } from '../optimizer/registerMissing' +import type { OptimizedDeps } from '../optimizer' +import { resolveHostname } from '../utils' +import { CLIENT_DIR } from '../constants' +import type { Logger } from '../logger' +import { printCommonServerUrls } from '../logger' +import { invalidatePackageData } from '../packages' import type { PluginContainer } from './pluginContainer' import { createPluginContainer } from './pluginContainer' -import type { FSWatcher, WatchOptions } from 'types/chokidar' import type { WebSocketServer } from './ws' import { createWebSocketServer } from './ws' import { baseMiddleware } from './middlewares/base' @@ -25,38 +44,19 @@ import { indexHtmlMiddleware } from './middlewares/indexHtml' import { - serveRawFsMiddleware, servePublicMiddleware, + serveRawFsMiddleware, serveStaticMiddleware } from './middlewares/static' import { timeMiddleware } from './middlewares/time' import { ModuleGraph } from './moduleGraph' -import type { Connect } from 'types/connect' -import { isParentDirectory, normalizePath } from '../utils' import { errorMiddleware, prepareError } from './middlewares/error' import type { HmrOptions } from './hmr' -import { handleHMRUpdate, handleFileAddUnlink } from './hmr' +import { handleFileAddUnlink, handleHMRUpdate } from './hmr' import { openBrowser } from './openBrowser' -import launchEditorMiddleware from 'launch-editor-middleware' import type { TransformOptions, TransformResult } from './transformRequest' import { transformRequest } from './transformRequest' -import { ssrLoadModule } from '../ssr/ssrModuleLoader' -import { resolveSSRExternal } from '../ssr/ssrExternal' -import { - rebindErrorStacktrace, - ssrRewriteStacktrace -} from '../ssr/ssrStacktrace' -import { ssrTransform } from '../ssr/ssrTransform' -import { createOptimizedDeps } from '../optimizer/registerMissing' -import type { OptimizedDeps } from '../optimizer' -import { resolveHostname } from '../utils' import { searchForWorkspaceRoot } from './searchRoot' -import { CLIENT_DIR } from '../constants' -import type { Logger } from '../logger' -import { printCommonServerUrls } from '../logger' -import { performance } from 'perf_hooks' -import { invalidatePackageData } from '../packages' -import type { SourceMap } from 'rollup' export { searchForWorkspaceRoot } from './searchRoot' diff --git a/packages/vite/src/node/server/middlewares/base.ts b/packages/vite/src/node/server/middlewares/base.ts index b72f0fd7949f0b..7aa93f3faeae1e 100644 --- a/packages/vite/src/node/server/middlewares/base.ts +++ b/packages/vite/src/node/server/middlewares/base.ts @@ -1,6 +1,6 @@ import { parse as parseUrl } from 'url' -import type { ViteDevServer } from '..' import type { Connect } from 'types/connect' +import type { ViteDevServer } from '..' // this middleware is only active when (config.base !== '/') diff --git a/packages/vite/src/node/server/middlewares/error.ts b/packages/vite/src/node/server/middlewares/error.ts index 62f86313690f0e..c43901a5b0a265 100644 --- a/packages/vite/src/node/server/middlewares/error.ts +++ b/packages/vite/src/node/server/middlewares/error.ts @@ -1,10 +1,10 @@ import colors from 'picocolors' import type { RollupError } from 'rollup' -import type { ViteDevServer } from '../..' import type { Connect } from 'types/connect' -import { pad } from '../../utils' import strip from 'strip-ansi' import type { ErrorPayload } from 'types/hmrPayload' +import { pad } from '../../utils' +import type { ViteDevServer } from '../..' export function prepareError(err: Error | RollupError): ErrorPayload['err'] { // only copy the information we need and avoid serializing unnecessary diff --git a/packages/vite/src/node/server/middlewares/indexHtml.ts b/packages/vite/src/node/server/middlewares/indexHtml.ts index 7b43ac0c67d428..80afe7f79a3535 100644 --- a/packages/vite/src/node/server/middlewares/indexHtml.ts +++ b/packages/vite/src/node/server/middlewares/indexHtml.ts @@ -19,15 +19,15 @@ import { send } from '../send' import { CLIENT_PUBLIC_PATH, FS_PREFIX, - VALID_ID_PREFIX, - NULL_BYTE_PLACEHOLDER + NULL_BYTE_PLACEHOLDER, + VALID_ID_PREFIX } from '../../constants' import { cleanUrl, + ensureWatchedFile, fsPathFromId, - normalizePath, injectQuery, - ensureWatchedFile + normalizePath } from '../../utils' import type { ModuleGraph } from '../moduleGraph' diff --git a/packages/vite/src/node/server/middlewares/proxy.ts b/packages/vite/src/node/server/middlewares/proxy.ts index 97de98a8331a7a..5c447435911ecd 100644 --- a/packages/vite/src/node/server/middlewares/proxy.ts +++ b/packages/vite/src/node/server/middlewares/proxy.ts @@ -1,10 +1,10 @@ import type * as http from 'http' -import { createDebugger, isObject } from '../../utils' import httpProxy from 'http-proxy' -import { HMR_HEADER } from '../ws' import type { Connect } from 'types/connect' import type { HttpProxy } from 'types/http-proxy' import colors from 'picocolors' +import { HMR_HEADER } from '../ws' +import { createDebugger, isObject } from '../../utils' import type { CommonServerOptions, ResolvedConfig } from '../..' const debug = createDebugger('vite:proxy') diff --git a/packages/vite/src/node/server/middlewares/spaFallback.ts b/packages/vite/src/node/server/middlewares/spaFallback.ts index 1aade764d6993a..450d188651b6e8 100644 --- a/packages/vite/src/node/server/middlewares/spaFallback.ts +++ b/packages/vite/src/node/server/middlewares/spaFallback.ts @@ -1,6 +1,6 @@ import fs from 'fs' -import history from 'connect-history-api-fallback' import path from 'path' +import history from 'connect-history-api-fallback' import type { Connect } from 'types/connect' import { createDebugger } from '../../utils' diff --git a/packages/vite/src/node/server/middlewares/static.ts b/packages/vite/src/node/server/middlewares/static.ts index 5fb4f7fad2e055..f2508032ddb565 100644 --- a/packages/vite/src/node/server/middlewares/static.ts +++ b/packages/vite/src/node/server/middlewares/static.ts @@ -3,20 +3,20 @@ import type { ServerResponse } from 'http' import type { Options } from 'sirv' import sirv from 'sirv' import type { Connect } from 'types/connect' +import { isMatch } from 'micromatch' import type { ViteDevServer } from '../..' import { FS_PREFIX } from '../../constants' import { cleanUrl, fsPathFromId, fsPathFromUrl, + isFileReadable, isImportRequest, isInternalRequest, + isParentDirectory, isWindows, - slash, - isFileReadable, - isParentDirectory + slash } from '../../utils' -import { isMatch } from 'micromatch' const sirvOptions: Options = { dev: true, diff --git a/packages/vite/src/node/server/middlewares/transform.ts b/packages/vite/src/node/server/middlewares/transform.ts index f5ae0e97b065bd..89022bf93bb4b2 100644 --- a/packages/vite/src/node/server/middlewares/transform.ts +++ b/packages/vite/src/node/server/middlewares/transform.ts @@ -1,10 +1,13 @@ import { promises as fs } from 'fs' import path from 'path' -import type { ViteDevServer } from '..' import type { Connect } from 'types/connect' +import colors from 'picocolors' +import type { ViteDevServer } from '..' import { cleanUrl, createDebugger, + ensureVolumeInPath, + fsPathFromId, injectQuery, isImportRequest, isJSRequest, @@ -12,18 +15,15 @@ import { prettifyUrl, removeImportQuery, removeTimestampQuery, - unwrapId, - fsPathFromId, - ensureVolumeInPath + unwrapId } from '../../utils' import { send } from '../send' import { transformRequest } from '../transformRequest' import { isHTMLProxy } from '../../plugins/html' -import colors from 'picocolors' import { DEP_VERSION_RE, - NULL_BYTE_PLACEHOLDER, - FS_PREFIX + FS_PREFIX, + NULL_BYTE_PLACEHOLDER } from '../../constants' import { isCSSRequest, diff --git a/packages/vite/src/node/server/moduleGraph.ts b/packages/vite/src/node/server/moduleGraph.ts index 1d7ae407f110c5..5730f4be324744 100644 --- a/packages/vite/src/node/server/moduleGraph.ts +++ b/packages/vite/src/node/server/moduleGraph.ts @@ -1,6 +1,6 @@ import { extname } from 'path' -import type { ModuleInfo, PartialResolvedId } from 'rollup' import { parse as parseUrl } from 'url' +import type { ModuleInfo, PartialResolvedId } from 'rollup' import { isDirectCSSRequest } from '../plugins/css' import { isHTMLRequest } from '../plugins/html' import { @@ -10,8 +10,8 @@ import { removeTimestampQuery } from '../utils' import { FS_PREFIX } from '../constants' -import type { TransformResult } from './transformRequest' import { canSkipImportAnalysis } from '../plugins/importAnalysis' +import type { TransformResult } from './transformRequest' export class ModuleNode { /** diff --git a/packages/vite/src/node/server/openBrowser.ts b/packages/vite/src/node/server/openBrowser.ts index 5eeb7554e606bb..bacb4006ea08ea 100644 --- a/packages/vite/src/node/server/openBrowser.ts +++ b/packages/vite/src/node/server/openBrowser.ts @@ -9,10 +9,10 @@ */ import path from 'path' +import { execSync } from 'child_process' import open from 'open' import spawn from 'cross-spawn' import colors from 'picocolors' -import { execSync } from 'child_process' import type { Logger } from '../logger' // https://github.com/sindresorhus/open#app diff --git a/packages/vite/src/node/server/pluginContainer.ts b/packages/vite/src/node/server/pluginContainer.ts index 5efc2670c0f81a..4016f6a0b71741 100644 --- a/packages/vite/src/node/server/pluginContainer.ts +++ b/packages/vite/src/node/server/pluginContainer.ts @@ -30,48 +30,48 @@ SOFTWARE. */ import fs from 'fs' -import { resolve, join } from 'path' -import type { Plugin } from '../plugin' +import { join, resolve } from 'path' +import { performance } from 'perf_hooks' import type { + EmittedFile, InputOptions, + LoadResult, MinimalPluginContext, - OutputOptions, ModuleInfo, NormalizedInputOptions, + OutputOptions, PartialResolvedId, ResolvedId, + RollupError, PluginContext as RollupPluginContext, - LoadResult, SourceDescription, - EmittedFile, SourceMap, - RollupError, TransformResult } from 'rollup' import * as acorn from 'acorn' import type { RawSourceMap } from '@ampproject/remapping' import { TraceMap, originalPositionFor } from '@jridgewell/trace-mapping' -import { cleanUrl, combineSourcemaps } from '../utils' import MagicString from 'magic-string' import type { FSWatcher } from 'chokidar' +import colors from 'picocolors' +import type * as postcss from 'postcss' +import type { Plugin } from '../plugin' +import { cleanUrl, combineSourcemaps } from '../utils' import { createDebugger, ensureWatchedFile, generateCodeFrame, - isObject, isExternalUrl, + isObject, normalizePath, numberToPos, prettifyUrl, timeFrom } from '../utils' import { FS_PREFIX } from '../constants' -import colors from 'picocolors' import type { ResolvedConfig } from '../config' import { buildErrorMessage } from './middlewares/error' import type { ModuleGraph } from './moduleGraph' -import { performance } from 'perf_hooks' -import type * as postcss from 'postcss' export interface PluginContainerOptions { cwd?: string diff --git a/packages/vite/src/node/server/sourcemap.ts b/packages/vite/src/node/server/sourcemap.ts index 88cbafc344c739..97ee26668d741c 100644 --- a/packages/vite/src/node/server/sourcemap.ts +++ b/packages/vite/src/node/server/sourcemap.ts @@ -1,8 +1,8 @@ import path from 'path' import { promises as fs } from 'fs' +import type { SourceMap } from 'rollup' import type { Logger } from '../logger' import { createDebugger } from '../utils' -import type { SourceMap } from 'rollup' const isDebug = !!process.env.DEBUG const debug = createDebugger('vite:sourcemap', { diff --git a/packages/vite/src/node/server/transformRequest.ts b/packages/vite/src/node/server/transformRequest.ts index f877925f491479..5402bb21093d59 100644 --- a/packages/vite/src/node/server/transformRequest.ts +++ b/packages/vite/src/node/server/transformRequest.ts @@ -1,24 +1,24 @@ import { promises as fs } from 'fs' import path from 'path' +import { performance } from 'perf_hooks' import getEtag from 'etag' import * as convertSourceMap from 'convert-source-map' import type { SourceDescription, SourceMap } from 'rollup' -import type { ViteDevServer } from '..' import colors from 'picocolors' +import type { ViteDevServer } from '..' import { - createDebugger, cleanUrl, + createDebugger, + ensureWatchedFile, + isObject, prettifyUrl, removeTimestampQuery, - timeFrom, - ensureWatchedFile, - isObject + timeFrom } from '../utils' import { checkPublicFile } from '../plugins/asset' import { ssrTransform } from '../ssr/ssrTransform' import { injectSourcesContent } from './sourcemap' import { isFileServingAllowed } from './middlewares/static' -import { performance } from 'perf_hooks' const debugLoad = createDebugger('vite:load') const debugTransform = createDebugger('vite:transform') diff --git a/packages/vite/src/node/server/ws.ts b/packages/vite/src/node/server/ws.ts index 17187ca6e282ac..af6b20b0434241 100644 --- a/packages/vite/src/node/server/ws.ts +++ b/packages/vite/src/node/server/ws.ts @@ -1,8 +1,9 @@ -import colors from 'picocolors' import type { Server } from 'http' import { STATUS_CODES } from 'http' import type { ServerOptions as HttpsServerOptions } from 'https' import { createServer as createHttpsServer } from 'https' +import type { Socket } from 'net' +import colors from 'picocolors' import type { ServerOptions, WebSocket as WebSocketRaw } from 'ws' import { WebSocketServer as WebSocketServerRaw } from 'ws' import type { WebSocket as WebSocketTypes } from 'types/ws' @@ -10,7 +11,6 @@ import type { CustomPayload, ErrorPayload, HMRPayload } from 'types/hmrPayload' import type { InferCustomEventPayload } from 'types/customEvent' import type { ResolvedConfig } from '..' import { isObject } from '../utils' -import type { Socket } from 'net' export const HMR_HEADER = 'vite-hmr' diff --git a/packages/vite/src/node/ssr/__tests__/ssrExternal.spec.ts b/packages/vite/src/node/ssr/__tests__/ssrExternal.spec.ts index 5fb51093405250..579ba997da5272 100644 --- a/packages/vite/src/node/ssr/__tests__/ssrExternal.spec.ts +++ b/packages/vite/src/node/ssr/__tests__/ssrExternal.spec.ts @@ -1,5 +1,5 @@ +import { expect, test } from 'vitest' import { stripNesting } from '../ssrExternal' -import { test, expect } from 'vitest' test('stripNesting', async () => { expect(stripNesting(['c', 'p1>c1', 'p2 > c2'])).toEqual(['c', 'c1', 'c2']) diff --git a/packages/vite/src/node/ssr/__tests__/ssrModuleLoader.spec.ts b/packages/vite/src/node/ssr/__tests__/ssrModuleLoader.spec.ts index 93a04734840d31..4b494524d45c72 100644 --- a/packages/vite/src/node/ssr/__tests__/ssrModuleLoader.spec.ts +++ b/packages/vite/src/node/ssr/__tests__/ssrModuleLoader.spec.ts @@ -1,6 +1,6 @@ import { resolve } from 'path' +import { expect, test, vi } from 'vitest' import { createServer } from '../../index' -import { test, vi, expect } from 'vitest' const badjs = resolve(__dirname, './fixtures/ssrModuleLoader-bad.js') const THROW_MESSAGE = 'it is an expected error' diff --git a/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts b/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts index 9c1fdea5939793..f759a51e60ff58 100644 --- a/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts +++ b/packages/vite/src/node/ssr/__tests__/ssrTransform.spec.ts @@ -1,7 +1,7 @@ +import { expect, test } from 'vitest' import { transformWithEsbuild } from '../../plugins/esbuild' import { traverseHtml } from '../../plugins/html' import { ssrTransform } from '../ssrTransform' -import { test, expect } from 'vitest' test('default import', async () => { expect( diff --git a/packages/vite/src/node/ssr/ssrExternal.ts b/packages/vite/src/node/ssr/ssrExternal.ts index 800a2307dabae6..24a12cb7386ff3 100644 --- a/packages/vite/src/node/ssr/ssrExternal.ts +++ b/packages/vite/src/node/ssr/ssrExternal.ts @@ -1,5 +1,6 @@ import fs from 'fs' import path from 'path' +import { createFilter } from '@rollup/pluginutils' import type { InternalResolveOptions } from '../plugins/resolve' import { tryNodeResolve } from '../plugins/resolve' import { @@ -10,7 +11,6 @@ import { resolveFrom } from '../utils' import type { Logger, ResolvedConfig } from '..' -import { createFilter } from '@rollup/pluginutils' const debug = createDebugger('vite:ssr-external') diff --git a/packages/vite/src/node/ssr/ssrManifestPlugin.ts b/packages/vite/src/node/ssr/ssrManifestPlugin.ts index 69184150bb97b7..993fae1632ed5d 100644 --- a/packages/vite/src/node/ssr/ssrManifestPlugin.ts +++ b/packages/vite/src/node/ssr/ssrManifestPlugin.ts @@ -1,4 +1,4 @@ -import { relative, basename, join, dirname } from 'path' +import { basename, dirname, join, relative } from 'path' import { parse as parseImports } from 'es-module-lexer' import type { ImportSpecifier } from 'es-module-lexer' import type { OutputChunk } from 'rollup' diff --git a/packages/vite/src/node/ssr/ssrModuleLoader.ts b/packages/vite/src/node/ssr/ssrModuleLoader.ts index ba9589d8bbbf1f..c552d5431881eb 100644 --- a/packages/vite/src/node/ssr/ssrModuleLoader.ts +++ b/packages/vite/src/node/ssr/ssrModuleLoader.ts @@ -8,19 +8,19 @@ import { unwrapId, usingDynamicImport } from '../utils' -import { rebindErrorStacktrace, ssrRewriteStacktrace } from './ssrStacktrace' -import { - ssrExportAllKey, - ssrModuleExportsKey, - ssrImportKey, - ssrImportMetaKey, - ssrDynamicImportKey -} from './ssrTransform' import { transformRequest } from '../server/transformRequest' import type { InternalResolveOptions } from '../plugins/resolve' import { tryNodeResolve } from '../plugins/resolve' import { hookNodeResolve } from '../plugins/ssrRequireHook' import { NULL_BYTE_PLACEHOLDER } from '../constants' +import { + ssrDynamicImportKey, + ssrExportAllKey, + ssrImportKey, + ssrImportMetaKey, + ssrModuleExportsKey +} from './ssrTransform' +import { rebindErrorStacktrace, ssrRewriteStacktrace } from './ssrStacktrace' interface SSRContext { global: typeof globalThis diff --git a/packages/vite/src/node/ssr/ssrTransform.ts b/packages/vite/src/node/ssr/ssrTransform.ts index 4eeb34ad7e102c..d7dc610cb82f47 100644 --- a/packages/vite/src/node/ssr/ssrTransform.ts +++ b/packages/vite/src/node/ssr/ssrTransform.ts @@ -1,19 +1,19 @@ import MagicString from 'magic-string' import type { SourceMap } from 'rollup' -import type { TransformResult } from '../server/transformRequest' -import { parser } from '../server/pluginContainer' import type { + Function as FunctionNode, Identifier, - Node as _Node, + Pattern, Property, - Function as FunctionNode, - Pattern + Node as _Node } from 'estree' import { extract_names as extractNames } from 'periscopic' import { walk as eswalk } from 'estree-walker' +import type { RawSourceMap } from '@ampproject/remapping' +import type { TransformResult } from '../server/transformRequest' +import { parser } from '../server/pluginContainer' import { combineSourcemaps } from '../utils' import { isJSONRequest } from '../plugins/json' -import type { RawSourceMap } from '@ampproject/remapping' type Node = _Node & { start: number diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index 41b1073bb5b991..1e9e23c483d1ef 100644 --- a/packages/vite/src/node/utils.ts +++ b/packages/vite/src/node/utils.ts @@ -1,25 +1,25 @@ -import debug from 'debug' -import colors from 'picocolors' import fs from 'fs' import os from 'os' import path from 'path' import { promisify } from 'util' -import { pathToFileURL, URL } from 'url' -import { - FS_PREFIX, - DEFAULT_EXTENSIONS, - VALID_ID_PREFIX, - CLIENT_PUBLIC_PATH, - ENV_PUBLIC_PATH, - CLIENT_ENTRY -} from './constants' -import resolve from 'resolve' +import { URL, pathToFileURL } from 'url' import { builtinModules } from 'module' +import { performance } from 'perf_hooks' +import { URLSearchParams } from 'url' +import resolve from 'resolve' import type { FSWatcher } from 'chokidar' import remapping from '@ampproject/remapping' import type { DecodedSourceMap, RawSourceMap } from '@ampproject/remapping' -import { performance } from 'perf_hooks' -import { URLSearchParams } from 'url' +import colors from 'picocolors' +import debug from 'debug' +import { + CLIENT_ENTRY, + CLIENT_PUBLIC_PATH, + DEFAULT_EXTENSIONS, + ENV_PUBLIC_PATH, + FS_PREFIX, + VALID_ID_PREFIX +} from './constants' export function slash(p: string): string { return p.replace(/\\/g, '/') diff --git a/packages/vite/types/shims.d.ts b/packages/vite/types/shims.d.ts index 587b3344e6ce39..d90f0bf42c7057 100644 --- a/packages/vite/types/shims.d.ts +++ b/packages/vite/types/shims.d.ts @@ -28,7 +28,7 @@ declare module 'launch-editor-middleware' { } declare module 'postcss-load-config' { - import type { ProcessOptions, Plugin } from 'postcss' + import type { Plugin, ProcessOptions } from 'postcss' function load( inline: any, root: string diff --git a/packages/vite/types/ws.d.ts b/packages/vite/types/ws.d.ts index 29732ebf3e0d8a..a7620ad5470a1d 100644 --- a/packages/vite/types/ws.d.ts +++ b/packages/vite/types/ws.d.ts @@ -20,9 +20,9 @@ import type { Agent, ClientRequest, ClientRequestArgs, + Server as HTTPServer, IncomingMessage, - OutgoingHttpHeaders, - Server as HTTPServer + OutgoingHttpHeaders } from 'http' import type { Server as HTTPSServer } from 'https' import type { Duplex, DuplexOptions } from 'stream' diff --git a/playground/worker/__tests__/es/es-worker.spec.ts b/playground/worker/__tests__/es/es-worker.spec.ts index b836b081357e2e..4096aa4ec995e7 100644 --- a/playground/worker/__tests__/es/es-worker.spec.ts +++ b/playground/worker/__tests__/es/es-worker.spec.ts @@ -1,7 +1,7 @@ import fs from 'fs' import path from 'path' -import { untilUpdated, isBuild, testDir } from '../../../testUtils' import type { Page } from 'playwright-chromium' +import { isBuild, testDir, untilUpdated } from '../../../testUtils' test('normal', async () => { await page.click('.ping') diff --git a/playground/worker/__tests__/iife/worker.spec.ts b/playground/worker/__tests__/iife/worker.spec.ts index cfa7dfe2e4537b..37cc8675dc357b 100644 --- a/playground/worker/__tests__/iife/worker.spec.ts +++ b/playground/worker/__tests__/iife/worker.spec.ts @@ -1,8 +1,8 @@ import fs from 'fs' import path from 'path' -import { untilUpdated, isBuild, testDir } from '../../../testUtils' import type { Page } from 'playwright-chromium' import { test } from 'vitest' +import { isBuild, testDir, untilUpdated } from '../../../testUtils' test('normal', async () => { await page.click('.ping') diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 18dbe1e00545ac..2777cf17d91d04 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,7 @@ importers: esbuild: ^0.14.38 eslint: ^8.15.0 eslint-define-config: ^1.4.0 + eslint-plugin-import: ^2.26.0 eslint-plugin-node: ^11.1.0 execa: ^5.1.1 fs-extra: ^10.1.0 @@ -59,6 +60,7 @@ importers: esbuild: 0.14.38 eslint: 8.15.0 eslint-define-config: 1.4.0 + eslint-plugin-import: 2.26.0_eslint@8.15.0 eslint-plugin-node: 11.1.0_eslint@8.15.0 execa: 5.1.1 fs-extra: 10.1.0 @@ -2004,6 +2006,10 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true + /@types/json5/0.0.29: + resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} + dev: true + /@types/less/3.0.3: resolution: {integrity: sha512-1YXyYH83h6We1djyoUEqTlVyQtCfJAFXELSKW2ZRtjHD4hQ82CC4lvrv5D0l0FLcKBaiPbXyi3MpMsI9ZRgKsw==} dev: true @@ -2510,11 +2516,32 @@ packages: resolution: {integrity: sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=} dev: true + /array-includes/3.1.5: + resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 + get-intrinsic: 1.1.1 + is-string: 1.0.7 + dev: true + /array-union/2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true + /array.prototype.flat/1.3.0: + resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 + es-shim-unscopables: 1.0.0 + dev: true + /arrify/1.0.1: resolution: {integrity: sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=} engines: {node: '>=0.10.0'} @@ -3329,7 +3356,6 @@ packages: dependencies: ms: 2.1.3 dev: true - optional: true /debug/4.3.3: resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} @@ -3483,6 +3509,13 @@ packages: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} dev: false + /doctrine/2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + /doctrine/3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -3597,6 +3630,12 @@ packages: resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==} dev: true + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + /es-to-primitive/1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} @@ -3842,6 +3881,21 @@ packages: engines: {node: '>= 14.6.0', npm: '>= 6.0.0', pnpm: '>= 6.32.9'} dev: true + /eslint-import-resolver-node/0.3.6: + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} + dependencies: + debug: 3.2.7 + resolve: 1.22.0 + dev: true + + /eslint-module-utils/2.7.3: + resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} + engines: {node: '>=4'} + dependencies: + debug: 3.2.7 + find-up: 2.1.0 + dev: true + /eslint-plugin-es/3.0.1_eslint@8.15.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} @@ -3853,6 +3907,28 @@ packages: regexpp: 3.2.0 dev: true + /eslint-plugin-import/2.26.0_eslint@8.15.0: + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + dependencies: + array-includes: 3.1.5 + array.prototype.flat: 1.3.0 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.15.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3 + has: 1.0.3 + is-core-module: 2.9.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.5 + resolve: 1.22.0 + tsconfig-paths: 3.14.1 + dev: true + /eslint-plugin-node/11.1.0_eslint@8.15.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} @@ -4964,6 +5040,13 @@ packages: resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} dev: true + /json5/1.0.1: + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + hasBin: true + dependencies: + minimist: 1.2.6 + dev: true + /json5/2.2.1: resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} engines: {node: '>=6'} @@ -5672,6 +5755,15 @@ packages: object-keys: 1.1.1 dev: true + /object.values/1.1.5: + resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 + dev: true + /okie/1.0.1: resolution: {integrity: sha512-JQh5TdSYhzXSuKN3zzX8Rw9Q/Tec1fm0jwP/k9+cBDk6tyLjlARVu936MLY//2NZp76UGHH+5gXPzRejU1bTjQ==} engines: {node: '>=12.0.0'} @@ -7530,6 +7622,15 @@ packages: typescript: 4.6.4 dev: true + /tsconfig-paths/3.14.1: + resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.1 + minimist: 1.2.6 + strip-bom: 3.0.0 + dev: true + /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true