【发布时间】:2014-07-02 00:15:50
【问题描述】:
我想知道在不依赖外部 npm 存储库的可用性(以及为内部开发的包处理私有管理的 git 存储库的凭据和高可用性)的情况下,使用弹性 beanstalk 部署复杂 node.js 的最佳实践是什么。
似乎有一种思想流派主张将 node_modules 实际签入到实际部署的项目的源代码树中。
来源 1:http://www.futurealoof.com/posts/nodemodules-in-git.html
来源 2:http://eng.yammer.com/managing-node-js-dependencies-and-deployments-at-yammer/
听起来检查它们是正确的方法,但是对于某些编译的包(在mac上开发并部署到linux)存在不同二进制格式的问题
我已经尝试按照 yammer 的建议进行操作(签入模块,除了 bin 文件夹),但即便如此,本地“npm rebuild”命令也会失败(它尝试对 express.js 中不存在的 bin 文件夹中的内容进行 chmod模块),所以我什至没有尝试查看 beanstalk 默认部署环境将如何处理这样的存储库。我假设它运行“npm install”(什么都不做),但它会运行“npm rebuild”吗?
那么,同样,部署具有多个依赖项的复杂项目的最佳实践是什么?在 node/beanstalk 世界中,它现在一定是一个已解决的问题,不是吗?
谢谢
【问题讨论】:
-
您可能正在使用依赖于二进制文件的库。如果您的暂存环境与生产环境 100% 相同,那么继续,检查 node_modules 文件夹,没问题。您不需要 npm如果您在登台和生产中没有使用不同版本的节点,请重建。只需复制所有内容,您应该没问题。
-
mongodb bson,kerberos 使用二进制文件,我在 mac 上开发,同时部署到 amazon linux 机器,我无法将二进制文件提交到存储库中
-
我明白了。但此时你可能想考虑使用类似 vagrant 的东西,它会让你的生活变得更简单。
标签: node.js npm amazon-elastic-beanstalk