每次创build节点应用程序时都要安装软件包

我正在通过一个MEAN堆栈开发PDF。

每次我需要创build一个新的API,他们要求在packages.json文件中添加必需的包并运行npm install

例如:

  { "name": "node-api", "main": "server.js", "dependencies": { "morgan": "~1.5.0", "express": "~4.10.3", "body-parser": "~1.9.3", "mongoose": "~3.8.19", "bcrypt-nodejs": "0.0.3" } } 

然后在terminal做:

 npm install 

所以如果我创build新的API说API2然后再次我需要做同样的和所有的软件包再次下载node_modules:

我的问题是:我们不能在本地下载和存储这些包,只要我们需要它们就可以使用,就像我们在Python或C ++中一样,而不是每次都下载。

你可以用g标志安装globaly包。 例如: npm install -g <package_name>
如果要安装具有特定版本的npm install -g <package_name>@<version>软件包: npm install -g <package_name>@<version>软件包名称npm install -g <package_name>@<version>

但是你必须明白,每个应用程序都需要一个特定版本的软件包,这就是为什么能够安装合适的版本来运行它的一个版本是非常有用的。 在Python中,我们使用例如virtualenv。

例如,一个应用程序A可能拥有3个共同的应用程序B的包,但是这些包的版本并不相同,因为A应用程序的包版本不能兼容运行B应用程序。 那为什么,你必须用npm install每个应用程序的所有包。

每个应用程序都有一个“packages.json”文件,列出所有的依赖关系,所以我认为smartsn123是正确的,最好有一个全局存储库,而不是为每个应用程序创build一个本地的,并使用“packages.json”从全局回购中进行select。 当您注意到某些依赖项中有一个node_modules文件夹时,情况会变得更糟。