Typescript 如何将nestjs应用程序部署到Dreamhost VPS

Typescript 如何将nestjs应用程序部署到Dreamhost VPS,typescript,nestjs,dreamhost,Typescript,Nestjs,Dreamhost,如何将nestjs应用程序部署到Dreamhost VPS?简单地添加nodej并将nestjs dist文件夹内容复制到站点的根目录中是行不通的。我似乎找不到任何关于Dreamhost或nestjs的文档来解释如何进行此操作。如何在Dreamhost上部署nestjs 首先确保在dreamhost面板中为您的域设置了NodeJS,如dreamhost文档中所述: 接下来安装最新版本的NVM,然后安装NodeJS。注意:确保您阅读了疑难解答部分,并添加了对乘客的引用,同时还有一些关于如何

如何将nestjs应用程序部署到Dreamhost VPS?简单地添加nodej并将nestjs dist文件夹内容复制到站点的根目录中是行不通的。我似乎找不到任何关于Dreamhost或nestjs的文档来解释如何进行此操作。

如何在Dreamhost上部署nestjs
  • 首先确保在dreamhost面板中为您的域设置了NodeJS,如dreamhost文档中所述:
  • 接下来安装最新版本的NVM,然后安装NodeJS。注意:确保您阅读了疑难解答部分,并添加了对乘客的引用,同时还有一些关于如何在每次更改应用程序时重新启动节点的信息:
  • 在nestjs应用程序中,将main.ts重命名为app.ts(默认情况下,Dreamhost服务于app.js,因此您需要在项目src文件夹中使用app.ts)
  • 在nestjs app package.json文件中,将所有引用从main.ts更改为app.ts
  • 您需要将任何与公用文件夹中的任何文件不匹配的请求重定向到您的域,并将这些请求重定向到在端口3000上运行的nestjs应用程序。在Dreamhost VPS站点上,在域根目录的公用文件夹中,将以下内容添加到.htaccess文件中
  • 在nestjs应用程序的终端窗口上运行npm运行构建
  • 将nestjs应用程序dist文件夹中的所有文件复制到dreamhost站点的根目录,而不是公用文件夹
  • 将package.json文件复制到根目录,而不是公共文件夹
  • 在Dreamhost上的站点根目录中运行
    npm install
  • 您可能需要触摸touch./tmp/restart.txt来重新启动您的NodeJS应用程序。在Dreamhost站点的根目录中,而不是公用文件夹中
  • 只要您不使用与公用文件夹中的文件夹同名的名称命名控制器,您的站点就应该与控制器一起工作。在app.ts中,您可能希望通过设置以下内容将所有请求设置为以路径/api开头:
    app.setGlobalPrefix('api')
以下是我发现的一个站点,它有助于找出将请求重定向到运行在端口3000上的nestjs所需的重写: -

希望这能帮助其他可能尝试这样做的人

RewriteEngine On
RewriteRule ^$ http://127.0.0.1:3000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L]