问题 了解npm和Node.js安装模块的位置


我已经使用Node.js和npm几周并取得了巨大成功,并开始质疑安装本地模块的最佳实践。我明白了 全局与本地参数但是,我的问题更多地与放置本地安装的位置有关。假设我有一个项目位于 ~/ProjectA/ 这是由多个开发人员控制和处理的版本。当最初玩Node.js和npm时,我不知道默认的本地安装路径,只是简单地在默认终端中安装必要的模块,导致安装路径为 ~/node_modules。最终要做的是要求所有其他开发项目的开发人员在自己的机器上安装模块以运行应用程序。看过一些开发人员在哪里跑了 npm install 我真的很惊讶它在他们的机器上工作(我想这与它有关 Node.js和require()如何查找模块),不用说,它有效。

既然项目已经过了“玩弄”阶段,我想正确设置项目文件夹。所以,我的问题是,是否应安装模块 ~/ProjectA/node_modules 因此,它应该是版本控制的项目文件的一部分,或者它应该继续位于开发人员 - 机器特定的位置......还是根本不重要?

我只是在寻找一个关于这个的“最佳实践”指导以及其他人在设置项目时所做的工作。


11135
2018-06-03 13:37


起源

读 npmjs.org/doc/developers.html 。你的应用有吗? package.json? - Colonel Panic


答案:


我认为这里的“最佳实践”是将依赖项保留在项目文件夹中。
到目前为止,我见过的所有Node项目(我是Node开发人员现在大约有8个月)都是这样做的。

您不需要版本控制依赖项。这就是我管理Node项目的方式:

  1. 保持版本锁定在 package.json 文件,所以每个人都得到相同的工作版本, 要么 使用 npm shrinkwrap 项目根目录中的命令。
  2. 添加 node_modules 文件夹到您的VCS忽略文件(我使用git,所以我的是 .gitignore
  3. 快乐,你做完了!

9
2018-06-03 13:44



要确保每个人都具有完全相同的依赖项版本,您应该使用它们 npm shrinkwrap  npmjs.org/doc/shrinkwrap.html - Colonel Panic
添加到答案,谢谢 - gustavohenke
所以听起来我正走在正确的轨道上。简单地排除这个似乎是合乎逻辑的 node_modules 从版本控制,但我不清楚我如何管理每个人的包。它看起来像是通过 package.json 档案或 npm shrinkwrap 命令,这是缺少的链接。谢谢您的帮助! - Sanuden