From 4bd15314d376a7a4ae64b03090264739ff8c90ac Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Wed, 11 May 2022 17:31:15 +0800 Subject: [PATCH] chore(lint): sort for imports (#8113) --- .eslintrc.cjs | 13 ++ package.json | 8 +- packages/plugin-react/src/fast-refresh.ts | 2 +- .../jsx-runtime/babel-import-to-require.ts | 2 +- .../src/jsx-runtime/babel-restore-jsx.spec.ts | 2 +- .../src/jsx-runtime/restore-jsx.spec.ts | 2 +- 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__/build.spec.ts | 2 +- .../vite/src/node/__tests__/config.spec.ts | 2 +- .../src/node/__tests__/plugins/css.spec.ts | 4 +- packages/vite/src/node/__tests__/scan.spec.ts | 2 +- packages/vite/src/node/build.ts | 32 +-- 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/importGlob.ts | 14 +- 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 | 30 +-- 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 +- packages/vite/src/node/plugins/esbuild.ts | 18 +- packages/vite/src/node/plugins/html.ts | 30 +-- .../vite/src/node/plugins/importAnalysis.ts | 62 ++--- .../src/node/plugins/importAnalysisBuild.ts | 8 +- 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 +- .../node/server/__tests__/search-root.spec.ts | 2 +- packages/vite/src/node/server/hmr.ts | 10 +- packages/vite/src/node/server/index.ts | 54 ++--- .../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 +- 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 +- pnpm-lock.yaml | 215 +++++++++++++++++- 68 files changed, 589 insertions(+), 360 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 48a0bd7773b0d7..d29f61ebe132b4 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', @@ -93,6 +94,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 cf18c4ee36e894..c4cf9a88c34853 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "esbuild": "^0.14.27", "eslint": "^8.14.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", @@ -79,10 +80,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 59d6661bedd11b..4f4e8268e8a97a 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,5 +1,5 @@ -import babelRestoreJSX from './babel-restore-jsx' import * as babel from '@babel/core' +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 c216e99bc3480d..53e8ced3339aa9 100644 --- a/packages/plugin-react/src/jsx-runtime/restore-jsx.spec.ts +++ b/packages/plugin-react/src/jsx-runtime/restore-jsx.spec.ts @@ -1,5 +1,5 @@ -import { restoreJSX } from './restore-jsx' import * as babel from '@babel/core' +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 1b24856be1ecab..335739798f6e2a 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__/build.spec.ts b/packages/vite/src/node/__tests__/build.spec.ts index b3ef37e64fd28e..1e5bf520e3f76e 100644 --- a/packages/vite/src/node/__tests__/build.spec.ts +++ b/packages/vite/src/node/__tests__/build.spec.ts @@ -1,5 +1,5 @@ -import { resolveLibFilename } from '../build' import { resolve } from 'path' +import { resolveLibFilename } from '../build' describe('resolveLibFilename', () => { test('custom filename function', () => { diff --git a/packages/vite/src/node/__tests__/config.spec.ts b/packages/vite/src/node/__tests__/config.spec.ts index ca7a2e76122cd0..b58c25f86ca833 100644 --- a/packages/vite/src/node/__tests__/config.spec.ts +++ b/packages/vite/src/node/__tests__/config.spec.ts @@ -1,5 +1,5 @@ import type { InlineConfig } from '..' -import type { UserConfigExport, UserConfig } from '../config' +import type { UserConfig, UserConfigExport } from '../config' import { mergeConfig, resolveConfig, resolveEnvPrefix } from '../config' describe('mergeConfig', () => { diff --git a/packages/vite/src/node/__tests__/plugins/css.spec.ts b/packages/vite/src/node/__tests__/plugins/css.spec.ts index e0d1f04a6510b2..a1ee843c925498 100644 --- a/packages/vite/src/node/__tests__/plugins/css.spec.ts +++ b/packages/vite/src/node/__tests__/plugins/css.spec.ts @@ -1,7 +1,7 @@ -import { cssUrlRE, cssPlugin, hoistAtRules } from '../../plugins/css' -import { resolveConfig } from '../../config' import fs from 'fs' import path from 'path' +import { cssPlugin, cssUrlRE, hoistAtRules } from '../../plugins/css' +import { resolveConfig } from '../../config' describe('search css url function', () => { test('some spaces before it', () => { diff --git a/packages/vite/src/node/__tests__/scan.spec.ts b/packages/vite/src/node/__tests__/scan.spec.ts index db11bcc45b284c..dcc024d6127011 100644 --- a/packages/vite/src/node/__tests__/scan.spec.ts +++ b/packages/vite/src/node/__tests__/scan.spec.ts @@ -1,4 +1,4 @@ -import { scriptRE, commentRE, importsRE } from '../optimizer/scan' +import { commentRE, importsRE, scriptRE } from '../optimizer/scan' import { multilineCommentsRE, singlelineCommentsRE } from '../utils' describe('optimizer-scan:script-test', () => { diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index ff03352a20d7a7..3b5d5039ffcc63 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -1,41 +1,41 @@ 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 { 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 dynamicImportVars from '@rollup/plugin-dynamic-import-vars' import type { RollupDynamicImportVarsOptions } from 'types/dynamicImportVars' -import type { Logger } from './logger' 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 { copyDir, emptyDir, lookupFile, normalizePath } from './utils' +import { manifestPlugin } from './plugins/manifest' +import type { Logger } from './logger' 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 { watchPackageDataPlugin } 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 531fe169f72de0..1df307d6c017f4 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 bfc2ddbe32a302..b3987b6511ded8 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/importGlob.ts b/packages/vite/src/node/importGlob.ts index a759bee2b5fa59..70ad62321236bb 100644 --- a/packages/vite/src/node/importGlob.ts +++ b/packages/vite/src/node/importGlob.ts @@ -2,22 +2,22 @@ import path from 'path' import { promises as fsp } from 'fs' import glob from 'fast-glob' import JSON5 from 'json5' +import type { RollupError } from 'rollup' +import colors from 'picocolors' import { isModernFlag, - preloadMethod, - preloadMarker + preloadMarker, + preloadMethod } from './plugins/importAnalysisBuild' import { isCSSRequest } from './plugins/css' import { + blankReplacer, cleanUrl, - singlelineCommentsRE, multilineCommentsRE, - blankReplacer, - normalizePath + normalizePath, + singlelineCommentsRE } from './utils' -import type { RollupError } from 'rollup' import type { Logger } from '.' -import colors from 'picocolors' interface GlobParams { base: string diff --git a/packages/vite/src/node/logger.ts b/packages/vite/src/node/logger.ts index 8ece2dd8746b7f..82cc4179fde5c8 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 03df61ae3e3ac2..e8bfec50693395 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 2262c7be96bb0a..18237c2a60ffc9 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 ef59a35b1d22d3..65ddac0da27a5d 100644 --- a/packages/vite/src/node/optimizer/scan.ts +++ b/packages/vite/src/node/optimizer/scan.ts @@ -1,35 +1,35 @@ import fs from 'fs' import path from 'path' +import { performance } from 'perf_hooks' import glob from 'fast-glob' -import type { ResolvedConfig, Logger } from '..' -import type { Loader, Plugin, OnLoadResult } from 'esbuild' +import type { Loader, OnLoadResult, Plugin } from 'esbuild' import { build, transform } from 'esbuild' +import { init, parse } from 'es-module-lexer' +import MagicString from 'magic-string' +import colors from 'picocolors' +import type { Logger, 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 { init, parse } from 'es-module-lexer' -import MagicString from 'magic-string' import { transformImportGlob } from '../importGlob' -import { performance } from 'perf_hooks' -import colors from 'picocolors' const debug = createDebugger('vite:deps') diff --git a/packages/vite/src/node/plugin.ts b/packages/vite/src/node/plugin.ts index 354b246dd9f182..c613fe5f180d07 100644 --- a/packages/vite/src/node/plugin.ts +++ b/packages/vite/src/node/plugin.ts @@ -1,18 +1,18 @@ -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 { 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 217b0d3fee1564..3a136e6c6a1fba 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 e4005608eef28c..8e5b27bac184b4 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/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 998159a918f2a0..ae7cbd1f2b792f 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 d8bf59225fd49a..572a7c9ce80549 100644 --- a/packages/vite/src/node/plugins/importAnalysis.ts +++ b/packages/vite/src/node/plugins/importAnalysis.ts @@ -1,57 +1,57 @@ 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 { transformImportGlob } from '../importGlob' +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 { transformImportGlob } from '../importGlob' -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 7e684db2b4cc6b..effa22a0e5651a 100644 --- a/packages/vite/src/node/plugins/importAnalysisBuild.ts +++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts @@ -1,15 +1,15 @@ 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 type { RawSourceMap } from '@ampproject/remapping' import { transformImportGlob } from '../importGlob' import { bareImportRE, combineSourcemaps } from '../utils' -import type { RawSourceMap } from '@ampproject/remapping' +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/index.ts b/packages/vite/src/node/plugins/index.ts index 2d34b99aebf1c5..5e46022836408f 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 08650a86e2c38c..29224af215e4c2 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 5826980f5b0f72..954c9730caaf4d 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 c1670c5d7efa72..a230ab5b57421d 100644 --- a/packages/vite/src/node/preview.ts +++ b/packages/vite/src/node/preview.ts @@ -1,19 +1,19 @@ import path from 'path' -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 connect from 'connect' +import sirv from 'sirv' import type { Connect } from 'types/connect' +import corsMiddleware from 'cors' +import compression from './server/middlewares/compression' 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 { proxyMiddleware } from './server/middlewares/proxy' import { resolveHostname } from './utils' import { printCommonServerUrls } from './logger' +import type { InlineConfig, ResolvedConfig } from '.' +import { resolveConfig } from '.' export interface PreviewOptions extends CommonServerOptions {} 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 7322768286809e..5195bb31e27433 100644 --- a/packages/vite/src/node/server/__tests__/search-root.spec.ts +++ b/packages/vite/src/node/server/__tests__/search-root.spec.ts @@ -1,5 +1,5 @@ -import { searchForWorkspaceRoot } from '../searchRoot' import { resolve } from 'path' +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 8eca99268e93d7..b38e313396024e 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 } from '../utils' -import type { ModuleNode } from './moduleGraph' import type { Update } from 'types/hmrPayload' -import { CLIENT_DIR } from '../constants' import type { RollupError } from 'rollup' import { isMatch } from 'micromatch' -import type { Server } from 'http' +import { CLIENT_DIR } from '../constants' +import { createDebugger, normalizePath } from '../utils' +import type { ViteDevServer } from '..' import { isCSSRequest } from '../plugins/css' +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 29f57adeb5c752..72789469eb20f2 100644 --- a/packages/vite/src/node/server/index.ts +++ b/packages/vite/src/node/server/index.ts @@ -2,18 +2,40 @@ 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 { TransformOptions as EsbuildTransformOptions } from 'esbuild' +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 type { ESBuildTransformResult } from '../plugins/esbuild' +import { transformWithEsbuild } from '../plugins/esbuild' +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,42 +47,20 @@ import { indexHtmlMiddleware } from './middlewares/indexHtml' import { - serveRawFsMiddleware, servePublicMiddleware, + serveRawFsMiddleware, serveStaticMiddleware } from './middlewares/static' import { timeMiddleware } from './middlewares/time' import type { ModuleNode } from './moduleGraph' 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 type { ESBuildTransformResult } from '../plugins/esbuild' -import { transformWithEsbuild } from '../plugins/esbuild' -import type { TransformOptions as EsbuildTransformOptions } from 'esbuild' -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 baafe95e8416f3..3c2805686de4f4 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/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 8b3a423f58aeab..08ba27d6911491 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 c1aa572864776a..00eb597a5c2c15 100644 --- a/packages/vite/src/node/ssr/ssrTransform.ts +++ b/packages/vite/src/node/ssr/ssrTransform.ts @@ -1,18 +1,18 @@ 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 { combineSourcemaps } from '../utils' import type { RawSourceMap } from '@ampproject/remapping' +import { combineSourcemaps } from '../utils' +import { parser } from '../server/pluginContainer' +import type { TransformResult } from '../server/transformRequest' type Node = _Node & { start: number diff --git a/packages/vite/src/node/utils.ts b/packages/vite/src/node/utils.ts index 0c25b4592adf6d..055e4d6eb51870 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, parse as parseUrl } 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 { parse as parseUrl, 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 68aa799cb6a863..32451fc8c9aada 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/pnpm-lock.yaml b/pnpm-lock.yaml index a3255aa5b2c6ec..609e5f1870459e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,7 @@ importers: esbuild: ^0.14.27 eslint: ^8.14.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.27 eslint: 8.14.0 eslint-define-config: 1.4.0 + eslint-plugin-import: 2.26.0_eslint@8.14.0 eslint-plugin-node: 11.1.0_eslint@8.14.0 execa: 5.1.1 fs-extra: 10.1.0 @@ -2656,6 +2658,10 @@ packages: resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==} 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 @@ -3349,11 +3355,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.3 + 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'} @@ -4315,7 +4342,6 @@ packages: dependencies: ms: 2.1.3 dev: true - optional: true /debug/4.3.3: resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} @@ -4399,6 +4425,14 @@ packages: object-keys: 1.1.1 dev: true + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + /defined/1.0.0: resolution: {integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=} dev: false @@ -4483,6 +4517,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'} @@ -4601,10 +4642,45 @@ packages: unbox-primitive: 1.0.1 dev: true + /es-abstract/1.20.0: + resolution: {integrity: sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.1.1 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.4 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.0 + object-keys: 1.1.1 + object.assign: 4.1.2 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 + dev: true + /es-module-lexer/0.10.5: 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'} @@ -4864,6 +4940,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.14.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} @@ -4875,6 +4966,28 @@ packages: regexpp: 3.2.0 dev: true + /eslint-plugin-import/2.26.0_eslint@8.14.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.14.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3 + has: 1.0.3 + is-core-module: 2.8.1 + 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.14.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} @@ -5326,10 +5439,24 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 + functions-have-names: 1.2.3 + dev: true + /functional-red-black-tree/1.0.1: resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} dev: true + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + /gauge/3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} @@ -5519,6 +5646,10 @@ packages: resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} dev: true + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + /has-flag/3.0.0: resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} engines: {node: '>=4'} @@ -5527,11 +5658,22 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.1 + dev: true + /has-symbols/1.0.2: resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} engines: {node: '>= 0.4'} dev: true + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + /has-tostringtag/1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} @@ -5953,6 +6095,12 @@ packages: resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} dev: true + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + /is-stream/2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -6621,6 +6769,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'} @@ -7087,6 +7242,12 @@ packages: dependencies: brace-expansion: 1.1.11 + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + /minimist-options/4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -7357,6 +7518,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.3 + es-abstract: 1.19.1 + dev: true + /okie/1.0.1: resolution: {integrity: sha512-JQh5TdSYhzXSuKN3zzX8Rw9Q/Tec1fm0jwP/k9+cBDk6tyLjlARVu936MLY//2NZp76UGHH+5gXPzRejU1bTjQ==} engines: {node: '>=12.0.0'} @@ -8338,6 +8508,15 @@ packages: /regenerator-runtime/0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: true + /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} @@ -8903,6 +9082,14 @@ packages: define-properties: 1.1.3 dev: true + /string.prototype.trimend/1.0.5: + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 + dev: true + /string.prototype.trimstart/1.0.4: resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} dependencies: @@ -8910,6 +9097,14 @@ packages: define-properties: 1.1.3 dev: true + /string.prototype.trimstart/1.0.5: + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.0 + dev: true + /string_decoder/1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -9401,6 +9596,15 @@ packages: typescript: 4.5.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 @@ -9536,6 +9740,15 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + /universalify/0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'}