我一直在使用Node.js和npm几周,取得了巨大的成功,并开始质疑安装本地模块的最佳实践。我理解Global vs Local argument,但是,我的问题更多地与放置本地安装的位置有关。假设我有一个位于~/ProjectA/
的项目,该项目受版本控制并由多个开发人员处理。当最初使用Node.js和npm时,我不知道默认的本地安装路径,只是简单地在默认终端中安装了必要的模块,导致安装路径为~/node_modules
。最终做的是要求所有其他开发项目的开发人员在自己的机器上安装模块以运行应用程序。看到一些开发人员在哪里运行npm install
我仍然感到非常惊讶它在他们的机器上工作(我猜它与how Node.js and require() looks for modules有关),但不用说,它有效。
现在项目已经过了“玩弄”阶段,我想正确设置项目文件夹。所以,我的问题是,模块应该安装在~/ProjectA/node_modules
,因此是版本控制的项目文件的一部分,还是应该继续位于开发人员 - 机器特定的位置...或者它不是真的什么事?
我只是在寻找一个关于这个的“最佳实践”指导以及其他人在设置项目时所做的工作。
答案 0 :(得分:9)
我认为这里的“最佳实践”是将依赖项保留在项目文件夹中 我到目前为止看到的几乎所有Node项目(我是Node开发人员现在大约有8个月)就是这样做的。
您不需要版本控制依赖项。这就是我管理Node项目的方式:
package.json
文件中,以便每个人都获得相同的工作版本,或在项目根目录中使用npm shrinkwrap
命令。node_modules
文件夹添加到您的VCS忽略文件中(我使用git,因此我的.gitignore
)