我当前正在尝试将演示应用程序部署到zeit now.sh。在documentation中,我发现了如何部署Node.js和Express.js应用程序。但是我要引用的示例期望在服务器初始化时作为参数js文件,并且默认情况下,Nest.js项目具有作为入口点ts文件。整个应用程序均以打字稿编写。如果我尝试使用main.ts
作为入口点,则会出现此错误:
11/28 08:05 PM (1m)
{ Error: Cannot find module './app.module'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/var/task/user/src/main.ts:26040:18)
at __webpack_require__ (/var/task/user/src/main.ts:21:30)
at Module.module.exports.Object.defineProperty.value (/var/task/user/src/main.ts:26050:69)
at __webpack_require__ (/var/task/user/src/main.ts:21:30)
at module.exports.Object.setPrototypeOf.__proto__ (/var/task/user/src/main.ts:85:18)
at Object.<anonymous> (/var/task/user/src/main.ts:88:10) code: 'MODULE_NOT_FOUND' }
11/28 08:05 PM (1m)
Error while initializing entrypoint: { Error: Cannot find module './app.module'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/var/task/user/src/main.ts:26040:18)
at __webpack_require__ (/var/task/user/src/main.ts:21:30)
at Module.module.exports.Object.defineProperty.value (/var/task/user/src/main.ts:26050:69)
at __webpack_require__ (/var/task/user/src/main.ts:21:30)
at module.exports.Object.setPrototypeOf.__proto__ (/var/task/user/src/main.ts:85:18)
at Object.<anonymous> (/var/task/user/src/main.ts:88:10) code: 'MODULE_NOT_FOUND' }
是否有人对将Nest.js应用程序部署到now.sh有经验?
答案 0 :(得分:1)
部署应用程序时,应始终先将其编译为javascript(无论现在如何)。
1)将文件now.json
添加到您的项目根目录:
{
"version": 2,
"builds": [
{
"src": "dist/main.js",
"use": "@now/node-server"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "dist/main.js"
}
]
}
2)运行npm run build
将项目编译到dist文件夹
3)运行now
(cli)以部署您的项目