我有一个自定义的 express 服务器,我用它来创建一个 api 并托管 next.js 生成的静态内容。当我尝试为生产构建时,它说:
错误:无法在“path/to/project/.next”目录中找到生产版本。在启动生产服务器之前尝试使用“下一次构建”构建您的应用。
最佳答案
next.js 项目和自定义服务器必须分开构建。
- 删除所有
.next
和dist
文件夹 - 在项目根目录中,创建一个名为
tsconfig.server.json
扩展了主要的tsconfig.json
配置。假设自定义服务器位于文件夹./server
中,开发人员希望将输出目录命名为./dist
。
{
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "commonjs",
"outDir": "dist",
"target": "es2017",
"isolatedModules": false,
"noEmit": false
},
"include": ["server"]
}
- 在
package.json
中编辑脚本
"scripts": {
"build:server": "tsc --project tsconfig.server.json",
"build:next": "next build",
"build": "npm run build:next && npm run build:server",
"start:prod": "NODE_ENV=production node dist/server/index.js",
...
}
关于typescript - 如何在 Typescript 中使用自定义服务器构建 next.js 应用程序以进行生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67809981/