Custom server issue with latest version of Next
Unanswered
Giant panda posted this in #help-forum
Original message was deleted.
2 Replies
Giant panda
This happens when using a custom server. I created a NextJS app with create-next-app with the latest version of next, and created a custom server.
When running
server/index.tsimport express, { Application, Request, Response } from "express"
import { createServer } from "http"
import next from "next"
import url from "url"
const dev = process.env.NODE_ENV !== "production"
const nextApp = next({ dev })
const nextHandler = nextApp.getRequestHandler()
nextApp.prepare().then(() => {
const app: Application = express()
app.all("*", function handler(req: Request, res: Response) {
const parsedUrl = url.parse(req.url, true)
nextHandler(req, res, parsedUrl)
})
const server = createServer(app)
try {
const port = parseInt(process.env.PORT || "3000", 10)
server.listen(port)
console.log("Server listening on port", port)
} catch (error) {
console.log(error)
}
})When running
yarn run dev, it executes the command nodemon. Here is the nodemon.json file:nodemon.json{
"watch": ["server", "src", "shared"],
"exec": "ts-node --project tsconfig.server.json server/index.ts",
"ext": "js ts"
}And here are the tsconfig files:
tsconfig.json{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"],
"ts-node": {
"transpileOnly": true,
// "swc": true
}
} tsconfig.server.json{
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "commonjs",
"outDir": "dist",
"target": "es2019",
"isolatedModules": false,
"noEmit": false,
},
"include": [
"server/**/*.ts",
]
}