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

时间:2019-09-15 19:07:18

标签: typescript nestjs dreamhost

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

1 个答案:

答案 0 :(得分:0)

如何在Dreamhost上部署nestjs

  • 首先确保在Dreamhost面板中为您的域设置了NodeJS,如Dreamhost文档中所述:
  • 接下来,安装最新版本的NVM,然后安装NodeJS。注意:确保您已阅读“故障排除”部分,并将引用添加至乘客,并且还有一些有关每次对应用程序进行更改时如何重新启动节点的信息:
  • 在您的nestjs应用中,将main.ts重命名为app.ts(Dreamhost默认提供app.js,因此您需要在项目src文件夹中添加app.ts)
  • 在您的nestjs应用程序package.json文件中,将所有引用从main.ts更改为app.ts
  • 您需要将与公用文件夹中的任何文件都不匹配的所有请求重定向到您的域,并将这些请求重定向到在端口3000上运行的nestjs应用程序。在Dreamhost VPS网站上,您域的根目录中的公用文件夹中将以下内容添加到您的.htaccess文件中
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]
  • 在您的nestjs应用的终端窗口上运行npm run build
  • 将nestjs应用程序dist文件夹中的所有文件复制到dreamhost网站的根目录,而不是公共文件夹
  • 将package.json文件复制到根目录,而不是公共文件夹
  • 在Dreamhost上您网站的根目录中运行npm install
  • 您可能需要touch ./tmp/restart.txt重新启动NodeJS应用。在Dreamhost网站的根目录中,而不是公用文件夹中。
  • 您的站点应该与您的控制器一起工作,只要您不使用与公用文件夹中的文件夹相同的名称来命名控制器即可。在您的app.ts中,您可能需要通过设置以下内容来将所有请求设置为以/ api开头:app.setGlobalPrefix('api');

这是我发现的一个站点,该站点有助于找出需要完成的重写以将请求重定向到在端口3000上运行的nestjs: -https://medium.com/@mayomi1/how-to-host-a-node-js-app-on-shared-host-52e12a62a259

希望对其他可能尝试这样做的人有所帮助。