如何处理部署的npm包

时间:2016-02-27 19:07:03

标签: node.js deployment npm

在我目前的项目中,我有很多应用程序,它们都有很多npm依赖项。当我部署应用程序时,每个应用程序都会获取npm依赖项。它工作得很好,但我不知道实时部署的正确方法。我不想检查实时部署分支或其他内容的依赖关系

有人有一个很好的解决方案来处理这个问题吗?长时间处理依赖关系?

在npm网站上,他们说我不会使用npm进行部署仅用于开发。

1 个答案:

答案 0 :(得分:1)

有很多原因可以解释为什么依赖npm来满足生产要求是错误的:

  1. npm网络延迟,请求失败 - 当生产部署自动化时,如果由于某种原因npm没有与您的请求合作,您的部署可能会延迟或失败,当您尝试推送时会发生什么?关键的修补程序和部署中断?这可能是一个问题,无论托管模块在哪里,但在使用npm public repo时控制得更少

  2. npm依赖质量控制,打破更新。公共模块可能随时更新,这可能会引入重大变化。应该保证正在开发的npm依赖项是正在部署到生产的确切版本。

  3. npm有时候只是没有工作,或者处于陌生状态(我自己的经历:()

  4. 可以做些什么?

    • 参考npm模块的特定版本
    • host npm依赖关系,我认为npm提供自托管的回购,或者repos可以分叉到私有回购并从github提供
    • 专注于部署工件,而不是依赖于npm进行部署。这可以通过构建docker容器或使用您的本机打包系统https://github.com/jordansissel/fpm
    • 打包您的应用程序来实现