当我已经拥有node_module文件夹中的所有依赖项时,为什么必须运行'npm install'

时间:2017-07-28 05:41:39

标签: angularjs node.js npm

为什么在我已经拥有node_module文件夹中的所有依赖项时,必须运行'npm install'。

在我的机器上成功运行'npm install'后,我想在另一台机器上设置相同的项目,为什么我已经在node_module文件夹中下载了所有依赖项后再次运行'npm install'?

3 个答案:

答案 0 :(得分:1)

npm install从package.json中提取所有依赖项,下载并将它们保存在node_modules文件夹中。如果您已经在本地安装了所有依赖项,则无需一次又一次地运行npm install。

当您安装新的依赖项时,您首次运行npm install <package-name> --save以及为什么--save?因为它在package.json上添加了新安装的依赖项。我们永远不会将node_modules推送到我们的git repo,只有更新的package.json被推送到repo。在这种情况下,如果一个新人从repo中提取你的代码,他只会运行npm install并且你的package.json上提到的所有依赖项将在他的项目本地可用。这是一个关于为什么我们使用package.json的小介绍希望它有所帮助。

答案 1 :(得分:1)

首先,我想告诉你两件事:

  • 由于您的项目依赖于某些软件包(node_modules),因此某些软件包依赖于其他软件包。
  • 当我们使用命令npm install package -g安装某个软件包时,-g会将其安装在可由任何项目访问的全局文件夹中。通过使用-g,package不会添加到node_modules。

现在回答你的问题。可能有一些软件包的依赖项在一台机器上安装为全局,而在另一台机器上安装。这可能发生在开发人员在同一台机器上处理许多项目时,可能他们已经安装了全局包。因此,在这种情况下,您需要执行npm install命令。

答案 2 :(得分:0)

检查两个系统中的节点版本。 我想这就是问题。你本地系统的版本要比服务器高。
可能无法为更高版本编译,确保两者中的节点版本相同,以减少冲突。