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

了解模块的npm和Node.js安装位置,node.js,npm,Node.js,Npm,我已经使用Node.js和npm几个星期了,取得了巨大的成功,并开始质疑安装本地模块的最佳实践。但是,我知道,我的问题更多地与在何处进行本地安装有关。假设我有一个位于~/ProjectA/的项目,它由多个开发人员进行版本控制和工作。最初玩Node.js和npm时,我不知道默认的本地安装路径,只是简单地在默认终端中安装了必要的模块,这导致安装路径为~/Node\u modules。这样做的最终目的是要求项目中的所有其他开发人员在自己的机器上安装模块,以便运行应用程序。看到一些开发人员在哪里运行了n

我已经使用Node.js和npm几个星期了,取得了巨大的成功,并开始质疑安装本地模块的最佳实践。但是,我知道,我的问题更多地与在何处进行本地安装有关。假设我有一个位于
~/ProjectA/
的项目,它由多个开发人员进行版本控制和工作。最初玩Node.js和npm时,我不知道默认的本地安装路径,只是简单地在默认终端中安装了必要的模块,这导致安装路径为
~/Node\u modules
。这样做的最终目的是要求项目中的所有其他开发人员在自己的机器上安装模块,以便运行应用程序。看到一些开发人员在哪里运行了
npm install
,我仍然对它在他们的机器上运行感到非常惊讶(我想它与此有关),但不用说,它确实运行了

现在项目已经过了“摆弄”阶段,我想正确设置项目文件夹。因此,我的问题是,模块是否应该安装在
~/ProjectA/node\u modules
上,从而成为版本控制项目文件的一部分,还是应该继续位于开发人员机器特定的位置……或者这根本不重要

我只是想就这一点以及其他人在设置项目时所做的事情寻找一些“最佳实践”指导。

我认为这里的“最佳实践”是将依赖项保留在项目文件夹中。
到目前为止,我看到的几乎所有节点项目(我是一名节点开发人员,现在已经有8个月了)都是这样做的

您不需要对依赖项进行版本控制。这就是我管理节点项目的方式:

  • 将版本锁定在
    package.json
    文件中,这样每个人都可以获得相同的工作版本,或者在项目根目录中使用
    npm shrinkwrap
    命令
  • 节点\u模块
    文件夹添加到VCS忽略文件(我使用git,所以我的是
    .gitignore
  • 开心点,你完了
    阅读你的应用程序是否有
    package.json
    ?为了确保每个人都有完全相同版本的依赖项,你应该使用
    npm shrinkwrap
    ,这样听起来我的思路是对的。简单地从版本控制中排除
    node\u模块
    似乎是合乎逻辑的,但我不清楚接下来如何管理每个人的软件包。它看起来像是通过
    package.json
    文件或
    npm shrinkwrap
    命令完成的,这是缺少的链接。谢谢你的帮助!