gpt4 book ai didi

node.js - ~/.npm、$PROJECT/node_modules 和/usr/lib/node_modules 之间的区别?

转载 作者:搜寻专家 更新时间:2023-10-31 23:54:24 28 4
gpt4 key购买 nike

我安装了 npm,当我第一次执行 sudo npm install some-package -g 时,它按照我的预期将该包安装到/usr/lib/node_modules,但随后它还在~/.npm。这些位置之间有什么区别?

这里的其他答案说使用 -g 的全局安装应该默认将它安装到您的主目录,但对我来说它安装到/usr/lib/node_modules,我在做什么错了吗?

当我在没有 -g 的情况下进行本地安装时,它会安装到当前目录 $PROJECT/node_modules。所有这些位置之间有什么区别,应该去哪里?

最佳答案

系统范围的包安装目录,通常在 /usr/lib 下通常用于提供二进制文件的全局安装包,该二进制文件应该在您的 PATH 中可用。 (以便能够从任何地方执行它)。

本地安装目录node_modules , 创建者 npm install在你执行的位置 npm , 通常位于您的项目目录中,通常用于项目特定的依赖项。

~/.npm包含已经下载的包。当在另一个位置安装相同的包时,npm 将首先在该缓存目录中查找该包。

引用:https://docs.npmjs.com/files/folders

相关文件:


假设场景:两个项目使用 Grunt (基于 Javascript 的构建脚本工具):

这两个项目使用不同的 Grunt 版本。一个项目比较老。如果不调整整个构建过程就无法更新 Grunt,另一个项目刚刚开始。

您必须在系统范围内安装“grunt-cli”(使用 -g 标志),因为它提供了 grunt二进制。此 CLI 二进制文件将在您当前的项目目录中查找本地“grunt”。另一方面,本地安装的“grunt”npm(没有 -g )将由 CLI 引导。当为第一个项目下载 grunt 时,npm 会将下载的包存储在 ~/.npm 中。 ,当为第二个项目安装 grunt 时,npm 将在 ~/.npm 中查找两个项目共有的包。首先。

全局安装包还有其他原因,大多数情况下它们提供的二进制文件应该位于您的 PATH 中。


或者,一些通常需要全局安装的包也可以在本地安装。然后,您必须将该二进制文件的路径(例如 path/to/your/node_modules/.bin/<BINARY> )添加到您的 PATH 中变量或仅指定完整的执行路径。

关于node.js - ~/.npm、$PROJECT/node_modules 和/usr/lib/node_modules 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27646290/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com