在我当前的项目中,我有很多应用程序,它们都有很多 npm 依赖项。当我部署应用程序时,每个应用程序都会获取 npm 依赖项。它工作得很好,但我不知道实时部署的正确方法。我不想检查对实时部署分支或其他内容的依赖关系
有人有解决这个问题的好办法吗?长时间处理依赖关系?
在 npm 网站上,他们说我不使用 npm 进行部署,只是为了开发。
最佳答案
依赖 npm 来满足生产需求有很多不好的原因:
npm 网络延迟、失败的请求 - 在自动化生产部署时,如果 npm 由于某种原因不配合您的请求,您的部署可能会延迟或失败,当您尝试推送关键修补程序时会发生什么并部署中断?无论模块托管在何处,这都可能是一个问题,但在使用 npm 公共(public)存储库时控制力甚至更少
npm 依赖质量控制,中断更新。公共(public)模块可能随时更新,这可能会带来重大更改。应该有某种保证,正在开发的 npm 依赖项是部署到生产的确切版本。
npm 有时不起作用,或者进入奇怪的状态(我自己的经验:( )
对此可以做什么?
- 引用 npm 模块的特定版本
- host npm依赖项,我认为 npm 提供自托管存储库,或者存储库可以 fork 到私有(private)存储库并从 github 提供服务
- 专注于部署工件,而不是依赖 npm 进行部署。这可以通过构建 docker 容器或使用 native 打包系统打包应用程序来完成 https://github.com/jordansissel/fpm
关于node.js - 如何使用 npm 包进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35674137/