diff --git a/packages/nuxt3/src/cli/commands/serve.ts b/packages/nuxt3/src/cli/commands/serve.ts index 1059ae2287..487b3d316c 100644 --- a/packages/nuxt3/src/cli/commands/serve.ts +++ b/packages/nuxt3/src/cli/commands/serve.ts @@ -1,6 +1,6 @@ import { promises as fs } from 'fs' import { join, extname, basename } from 'path' -import connect from 'connect' +import express from 'express' import serveStatic from 'serve-static' import compression from 'compression' import { getNuxtConfig } from 'src/config' @@ -38,7 +38,7 @@ export default { if (!distStat || !distStat.isDirectory()) { throw new Error('Output directory `' + basename(options.generate.dir) + '/` does not exists, please run `nuxt export` before `nuxt serve`.') } - const app = connect() + const app = express() app.use(compression({ threshold: 0 })) app.use( options.router.base, diff --git a/packages/nuxt3/src/config/config/_common.ts b/packages/nuxt3/src/config/config/_common.ts index 806e1e28c7..d75572334b 100644 --- a/packages/nuxt3/src/config/config/_common.ts +++ b/packages/nuxt3/src/config/config/_common.ts @@ -1,6 +1,6 @@ import path from 'path' import type { WatchOptions as ChokidarWatchOptions } from 'chokidar' -import type { NextHandleFunction, Server as ConnectServer } from 'connect' +import type express from 'express' import type { configHooksT } from 'hookable/types/types' import ignore from 'ignore' import capitalize from 'lodash/capitalize' @@ -57,13 +57,13 @@ interface NuxtHooks extends configHooksT { render?: { before?(renderer: any, options: any): void done?(renderer: any): void - errorMiddleware?(app: ConnectServer): void + errorMiddleware?(app: express.Application): void resourcesLoaded?(resources: any): void route?(url: string, result: any, context: any): void routeContext?(context: any): void routeDone?(url: string, result: any, context: any): void beforeResponse?(url: string, result: any, context: any): void - setupMiddleware?(app: ConnectServer): void + setupMiddleware?(app: express.Application): void } } @@ -113,7 +113,7 @@ interface CommonConfiguration { modules: NuxtModule[] privateRuntimeConfig: Record | ((env: NodeJS.ProcessEnv) => Record) publicRuntimeConfig: Record | ((env: NodeJS.ProcessEnv) => Record) - serverMiddleware: Array | Record + serverMiddleware: Array | Record ssr: boolean target: Target test: boolean diff --git a/packages/nuxt3/src/config/config/render.ts b/packages/nuxt3/src/config/config/render.ts index e65de47d69..a2961d9b30 100644 --- a/packages/nuxt3/src/config/config/render.ts +++ b/packages/nuxt3/src/config/config/render.ts @@ -1,7 +1,5 @@ // TODO: Refactor @nuxt/server related options into `server.js` -import type { ServerResponse } from 'http' -import type { Options as EtagOptions } from 'etag' -import type { IncomingMessage } from 'connect' +import type { ServerResponse, IncomingMessage } from 'http' import type { CompressionOptions } from 'compression' import type { ServeStaticOptions } from 'serve-static' import type { ServerMiddleware } from './_common' diff --git a/packages/nuxt3/src/server/middleware/timing.ts b/packages/nuxt3/src/server/middleware/timing.ts index 5cb37f7309..cea61e1064 100644 --- a/packages/nuxt3/src/server/middleware/timing.ts +++ b/packages/nuxt3/src/server/middleware/timing.ts @@ -1,5 +1,4 @@ -import type { ServerResponse } from 'http' -import type { IncomingMessage } from 'connect' +import type { ServerResponse, IncomingMessage } from 'http' import consola from 'consola' import onHeaders from 'on-headers' diff --git a/packages/nuxt3/src/server/server.ts b/packages/nuxt3/src/server/server.ts index f54b3b147a..131466d4b4 100644 --- a/packages/nuxt3/src/server/server.ts +++ b/packages/nuxt3/src/server/server.ts @@ -1,10 +1,10 @@ import path from 'path' -import { ServerResponse } from 'http' +import { ServerResponse, IncomingMessage } from 'http' import consola from 'consola' import launchMiddleware from 'launch-editor-middleware' import serveStatic from 'serve-static' import servePlaceholder from 'serve-placeholder' -import connect, { IncomingMessage } from 'connect' +import express from 'express' import type { TemplateExecutor } from 'lodash' import { Nuxt } from 'src/core' @@ -25,7 +25,7 @@ interface Manifest { async: Array } -type NuxtMiddleware = connect.HandleFunction & { +type NuxtMiddleware = express.Handler & { prefix?: string, entry?: string, _middleware?: NuxtMiddleware @@ -35,7 +35,7 @@ export default class Server { __closed?: boolean _readyCalled?: boolean - app: connect.Server + app: express.Application devMiddleware: (req: IncomingMessage, res: ServerResponse, next: (err?: any) => void) => any listeners: Listener[] nuxt: Nuxt @@ -71,8 +71,8 @@ export default class Server { // Will be set after listen this.listeners = [] - // Create new connect instance - this.app = connect() + // Create new express instance + this.app = express() // Close hook this.nuxt.hook('close', () => this.close()) diff --git a/packages/nuxt3/src/utils/context.ts b/packages/nuxt3/src/utils/context.ts index fc4d989e2b..5dff1ab87f 100644 --- a/packages/nuxt3/src/utils/context.ts +++ b/packages/nuxt3/src/utils/context.ts @@ -1,5 +1,4 @@ -import type { ServerResponse } from 'http' -import type { IncomingMessage } from 'connect' +import type { ServerResponse, IncomingMessage } from 'http' import { TARGETS } from './constants' diff --git a/packages/nuxt3/src/utils/modern.ts b/packages/nuxt3/src/utils/modern.ts index 96d7653aa0..02ce8441a6 100644 --- a/packages/nuxt3/src/utils/modern.ts +++ b/packages/nuxt3/src/utils/modern.ts @@ -1,7 +1,7 @@ +import type { IncomingMessage } from 'http' import { UAParser } from 'ua-parser-js' import type { SemVer } from 'semver' -import type { IncomingMessage } from 'connect' export const ModernBrowsers = { Edge: '16',