【问题标题】:proper workflow for deploying node app [closed]部署节点应用程序的正确工作流程[关闭]
【发布时间】:2013-11-04 14:53:36
【问题描述】:

过去几个月我一直在学习 Node,现在有一个复杂的应用程序。我的问题是,我想让它可重复使用,因为我是一个完全的菜鸟,所以我从一开始就没有想到这一点。

我有什么:

一个复杂的节点/快速应用程序作为守护进程运行,使用 pm2。

  • 大量子进程脚本,一些在 Node 中,一些使用 casperjs/phantomjs

  • 用于数据库凭据、服务器端口等的配置文件。

  • 许多 npm 依赖项,一些用于应用程序本身,一些仅由子进程使用。 应用本身运行良好,每个路径都存储在配置文件中,因此部署应该不会太难。

  • package.json 文件中的所有 npm 依赖项

我想做的事:

  • 将应用程序存储在 GIT 存储库中,以便我可以在 EC2 实例上快速设置它。
  • 安装pm2、phantomjs/casperjs、所有node_modules并以简单的方式创建应用程序的树状结构(包括一些应用程序创建的文件的空文件夹),所以不了解应用程序的人可以得到快速启动并运行。

我的问题:

  • 是否需要将 node_modules 添加到我的 git 存储库中?

  • 如何以最简单的方式集成应用程序部署、依赖项安装和 pm2、phantom 和 casper 安装?我不介意编写脚本,但我真的不知道从哪里开始或最佳实践。我在网上看到的大部分内容都是关于 nodejitsu/heroku 的,并不适用。

我的缺点:

  • Git 新手
  • 没有遵循任何开发指南,因为这一切都是从一个玩具项目开始的。

希望我的问题可以理解,谢谢!

编辑:

到目前为止我有:

仍在尝试弄清楚如何包含外部依赖项。

【问题讨论】:

    标签: git node.js deployment


    【解决方案1】:

    一种部署方式是添加命令的安装列表:

    1. 克隆存储库
    2. 安装依赖apt-get install npm ...
    3. 安装节点全局模块npm install -g pm2
    4. 安装节点依赖npm installnpm update
    5. config.example.json 复制到config.json 并根据您的需要进行更改
    6. 启动应用程序pm2 index.js

    不应将 node_modules 文件夹添加到 git 存储库中。您应该将所有项目节点依赖项添加到 package.json 文件中,npm install / npm update 应该完成其余的工作。

    【讨论】:

    • 非节点依赖呢?
    • 您可以将它们添加到apt-get install 或简单地在pm2 index.js 之前添加一个步骤并展示如何安装这些依赖项。
    • 是的,我就是这么做的,用一个简单的 bash 脚本让事情变得更顺畅。谢谢!
    【解决方案2】:

    您可以使用Capistrano 轻松完成所有部署任务。它是用 Ruby 编写的,但您可以使用它来部署任何您想要的东西,包括 Node.js 应用程序。

    你可以找到很多examplesintegration modules

    【讨论】:

      猜你喜欢
      • 2011-03-07
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 2012-10-12
      • 2015-05-18
      • 2010-11-09
      • 1970-01-01
      相关资源
      最近更新 更多