【问题标题】:Why does npm install packages locally? [closed]为什么 npm 会在本地安装包? [关闭]
【发布时间】:2020-09-08 16:34:15
【问题描述】:

这更像是一个设计问题,可能不属于这里(请告诉我)。据我了解,大多数语言将它们的依赖项安装在公共空间( /usr/local/ ... )或使用一些项目/环境特定的隔离(不同的文件夹来保存不同的版本)。 npm 创建者在本地安装依赖项的思考过程是什么?可能考虑了哪些利弊?这一决定对当前形势有何影响?

【问题讨论】:

  • 据我所知,您仍然可以使用其他构建系统进行“本地”安装。链接库的全局使用也已经完成,但它一次又一次地被证明是异常不可靠的,因此为什么构建工件会理想地包含它需要的一切,而不是抓取随机 DLL 或其他全局可能存在或不存在的资源,可能存在或不存在正确版本等。

标签: node.js npm dependencies


【解决方案1】:

npm 创建者在本地安装依赖项的思考过程是什么?

像你一样难过different folders to hold different versions

可能考虑了哪些优点和缺点?

专业版:

  • 在同一台机器上的多个项目时轻松隔离。

    如果您使用pip(对于 Python),您需要设置一个 virtual-env 如果您想同时管理多个项目 主持人。 virtual-env抽象环境变量实现 npm 对文件夹的影响。

缺点:

  • 项目之间不会共享相同的版本依赖关系。
  • 环境管理 - 如果您不小心,有时开发依赖项(工具)会找到正常依赖项的方法。

这一决定对当前形势有何影响?

我想说的不是那种匹配。现在,使用docker 创建隔离环境的日子比以往任何时候都更加随意。这意味着在生产中,一个 docker 容器是隔离的。

关于开发环境,越来越多的开发人员正在转向 docker dev-container,这使得隔离问题过时了。

【讨论】:

    猜你喜欢
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    相关资源
    最近更新 更多