最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何使用NESTJS生成API的生产版本

IT培训 admin 5浏览 0评论

如何使用NESTJS生成API的生产版本

我正在生成使用NESTJS框架制作的API的生产版本,并想知道我应该将哪些文件上传到服务器。当我运行“npm run start:prod”编译它会生成“dist”文件夹,但我试图只运行它,但它不足以运行我的应用程序。我是否需要将所有文件上传到服务器?我做了几次测试,删除了我在开发过程中使用的文件夹,但只是在开发模式下完全相同时才设法在生产模式下运行。

我在文档中查找了有关此内容的内容,但一无所获。有谁能够帮我?

谢谢

回答如下:

老实说,你应该只需要dist文件夹,就像JS'complied'文件一样。要运行您的应用程序,通常使用此命令node dist/main.js。至于你上传的文件,由你决定。我个人而言,我使用了大量的持续集成,所以我只是克隆到repo到我的容器/服务器并使用yarn start:prod。每次我部署时都是如此,我正在生成在生产环境中运行所需的文件。

就像@Kim Kern提到的那样,一些节点模块是使用node-gyro本地构建的;所以在部署时最好在服务器/容器上构建node_modules。您的部署脚本应如下所示

git clone [email protected]:myuser/myrepo.git /var/www/
cd /var/www/
node -v && \
yarn && \
yarn build && \
yarn start:prod

上面的脚本应该

1)将所需的repo拉入“托管”目录 2)检查节点版本 3)安装node_modules并构建本机脚本等 4)建立生产分布 5)运行生产JS脚本

如果查看package.json文件,您会注意到使用yarn startyarn start:devyarn start:prod时运行的不同脚本。在dev中你会注意到使用ts-node这是一个打字稿节点的跑步者类型的东西(不记得正确的短语)。此外,start:dev脚本使用nodemode重新启动ts-node脚本。你还会看到start:prod脚本使用node dist/main.js并且prestart:prod脚本运行rm -rf dist && tsc,删除dist文件夹并“编译”生产环境所需的javascript。

但是,没有持续集成的服务器上的打字稿应用程序的缺点是,在运行prod脚本之前,您可能无法看到或知道打字稿编译错误。我建议在进行部署之前设置一个程序来编译来自typescript的javascipt,因为在知道下一个版本将构建和运行之前你不想删除当前的dist构建!

如何使用NESTJS生成API的生产版本

我正在生成使用NESTJS框架制作的API的生产版本,并想知道我应该将哪些文件上传到服务器。当我运行“npm run start:prod”编译它会生成“dist”文件夹,但我试图只运行它,但它不足以运行我的应用程序。我是否需要将所有文件上传到服务器?我做了几次测试,删除了我在开发过程中使用的文件夹,但只是在开发模式下完全相同时才设法在生产模式下运行。

我在文档中查找了有关此内容的内容,但一无所获。有谁能够帮我?

谢谢

回答如下:

老实说,你应该只需要dist文件夹,就像JS'complied'文件一样。要运行您的应用程序,通常使用此命令node dist/main.js。至于你上传的文件,由你决定。我个人而言,我使用了大量的持续集成,所以我只是克隆到repo到我的容器/服务器并使用yarn start:prod。每次我部署时都是如此,我正在生成在生产环境中运行所需的文件。

就像@Kim Kern提到的那样,一些节点模块是使用node-gyro本地构建的;所以在部署时最好在服务器/容器上构建node_modules。您的部署脚本应如下所示

git clone [email protected]:myuser/myrepo.git /var/www/
cd /var/www/
node -v && \
yarn && \
yarn build && \
yarn start:prod

上面的脚本应该

1)将所需的repo拉入“托管”目录 2)检查节点版本 3)安装node_modules并构建本机脚本等 4)建立生产分布 5)运行生产JS脚本

如果查看package.json文件,您会注意到使用yarn startyarn start:devyarn start:prod时运行的不同脚本。在dev中你会注意到使用ts-node这是一个打字稿节点的跑步者类型的东西(不记得正确的短语)。此外,start:dev脚本使用nodemode重新启动ts-node脚本。你还会看到start:prod脚本使用node dist/main.js并且prestart:prod脚本运行rm -rf dist && tsc,删除dist文件夹并“编译”生产环境所需的javascript。

但是,没有持续集成的服务器上的打字稿应用程序的缺点是,在运行prod脚本之前,您可能无法看到或知道打字稿编译错误。我建议在进行部署之前设置一个程序来编译来自typescript的javascipt,因为在知道下一个版本将构建和运行之前你不想删除当前的dist构建!

发布评论

评论列表 (0)

  1. 暂无评论