【问题标题】:How to quickly deploy a node app which uses slow-building binary modules?如何快速部署使用缓慢构建二进制模块的节点应用程序?
【发布时间】:2012-09-17 13:47:40
【问题描述】:

我有一些应用程序使用了很棒的 node-sqlite3 模块。它的一个缺点是它在安装时从源代码构建 sqlite。我进行部署的方式使情况更加复杂。我正在使用 chef,它为每次部署提供了一个干净的源代码树。然后,我在每个应用程序根目录执行 npm install。这对大多数事情来说都不是问题,因为它只是命中本地缓存。但是对于 sqlite3,它会为每个引用模块的地方构建一个全新的副本;我的情况是4次!现在需要几秒钟的时间需要几分钟,这在测试暂存环境中的新更改时尤其糟糕。

原则上,我应该能够为给定版本的模块构建一次,缓存它,然后在部署时复制或链接二进制文件。有没有人做过类似的事情?这里有恶魔潜伏吗?

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    我们在这里在 Chef 上使用 Node.js 进行了类似的设置,并选择全局安装 sqlite3。 Node.js 风格指南建议不要这样做,但似乎每次部署都要重新编译 sqlite3 几分钟:

    在 chef 或你的 package.json 中你有类似

    (sudo) npm install -g sqlite3@2.1.x
    

    确保将全局 NODE_PATH 添加到初始化脚本中。

    node NODE_PATH=/usr/local/lib/node_modules app.js
    

    【讨论】:

      猜你喜欢
      • 2015-11-08
      • 2019-02-14
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多