我是node.js的新手。在使用Express,测试,.nvmrc
等创建模块化项目之后,终于可以部署该应用程序了。应该怎么做?在Java中,您将项目捆绑到一个单独的文件中,该文件包含自包含文件,并以某种配置将其放入服务器中。那么node.js呢?
我应该只将包含源代码和node_modules
的整个目录复制到生产机器,然后使用systemd,pm2或其他进程管理器来运行它吗?但我听说某些依赖项可能是系统依赖项,因此它们可能无法正常工作
还是我应该仅复制源并在生产计算机上运行npm install --production
?但是这种方式只有在npm存储库在线时才可以部署。此外,构建应用程序还需要花费时间,并且必须在集群中的所有计算机上完成。如果出现错误,如何快速回滚到以前的版本呢?再次,需要时间和在线npm仓库
另一个选择是构建docker映像。但是似乎很尴尬的是,轻松,安全地部署应用程序的唯一方法是使用第三方技术
在现实生活中如何进行?
答案 0 :(得分:2)
请确保不要复制整个目录,尤其是node_modules。
系统上安装的所有软件包都应使用--save选项示例安装:npm install --save express
,如果这样做,则package.json中将具有项目所需的依赖项,无论它们是开发依赖项还是生产依赖项依赖性。
我不知道您的项目结构是什么样子,但是作为节点应用程序,您必须在项目中运行npm init .
来设置package.json
文件,然后才能使用--save
。
通常我们使用git
版本控制系统
要部署到服务器,首先我们将代码推送到git存储库,然后将其从其中拉至服务器git
您必须在项目中添加.gitignore,并忽略将node_modules提交到git存储库中。
然后,您可以拉到服务器并在服务器上运行npm install
。并确保您需要启动Web服务器来服务您的应用示例ngnix
您可以尝试使用Heroku进行简单的部署,所有要做的就是使用Heroku设置项目,并在推送代码时由Heroku管理部署。 Heroku