gpt4 book ai didi

node.js - 如何为生产准备 nodejs?

转载 作者:行者123 更新时间:2023-12-04 18:24:40 24 4
gpt4 key购买 nike

我有一个 MEAN Stack 应用程序,需要在 CPanel 上托管,但我之前从未部署过应用程序。通过使用以下命令在 dist 文件夹中创建一个包,很容易部署应用程序的 Angular 部分:

ng build --prod

但我想知道我应该如何在服务器上发布我的后端代码。是否有任何命令/命令可以像在 Angular 中一样创建一个缩小的包?

我还想知道是否需要安装一些 npm 包以确保我的应用程序在服务器上顺利运行?就像我在谷歌上搜索部署 nodejs 时一直在阅读有关 PM2 和 Nginx 的信息。那么它们有什么好处呢?

请提及任何可能有用的文章或视频。

Angular 版本 7

Node 版本 8.11.3

Ubuntu 16.04

最佳答案

您可以按原样部署代码,它会工作!

您不需要缩小代码。 VM 足够快以运行它。在将文件从服务器发送到客户端时,通常会进行缩小以减小文件的大小,并且由于您不发送任何文件,因此您不必担心。

我推荐PM2用于在达到生产状态后管理 Node 进程。它包括日志、自动重启和许多很酷的功能,可以帮助你。

如果您担心 node_modules 的大小目录,也许您可​​以识别仅在开发期间使用哪些包(例如,Jest 和 Mocha 等测试工具,Babel、Typescript 等转译器等)。将这些放在 "devDependency" 中输入您的package.json文件。然后,在生产环境中,运行 npm install --production它不会安装您列为 devDependency 的任何内容.那应该会产生更小的 node_modules .

如果您关注 The Twelve Factors ,然后还为仅生产凭据创建环境文件。

为了完整起见,如果您使用 Babel/Typescript 或任何其他类似的工具,那么您确实需要将项目转换为 Node 可以理解的 Javascript 代码。运行相应的命令以生成生产版本。

关于 Nginx,有些人喜欢将 Nginx 作为反向代理,让它为静态 Assets 提供服务,而对于 API 请求,他们将其转发给 Node API。这是“最佳实践”,因为 Nginx 可以轻松调整以更快地为静态 Assets 提供服务,并且包括缓存、安全保护等多个选项。

关于node.js - 如何为生产准备 nodejs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54169543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com