export default defineNuxtConfig({
nitro: {
preset: 'node-server',
externals: {
inline: [/.*/]
}
},
})
- preset: 'node-server' 是什么
- 这是 Nitro 的构建目标(preset):
- 产出标准 Node.js 服务端程序
- 适合自建服务器、Windows/Linux 直接跑进程
- externals.inline: [/.*/] 是什么
- Nitro 默认会把很多第三方依赖“外置”(external),运行时再从 node_modules 加载。这里写 inline: [/.*/](匹配所有包),等于告诉构建器:
- 尽量把所有运行时依赖都打进 server bundle
- 部署时通常只需拷贝
.output,不再 npm install
- 优点
- 部署简单:产物即应用,拷贝即跑
- 环境一致:减少“线上缺包/版本漂移”问题
- 刷新 SSR 路由更稳:不会因为外部依赖缺失而 ERR_MODULE_NOT_FOUND
- 代价与注意点
- 构建体积可能更大,构建时间可能更长
- 个别包(尤其原生模块、动态
require 特殊写法)可能仍有边缘问题
- 并非“绝对 100% 单文件化”,但对常规前端依赖很有效