每次创建节点应用程序时都安装包

时间:2015-11-14 13:21:24

标签: javascript node.js express meanjs

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

每当我需要创建新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"
  }
 }

然后在终端做:

npm install

因此,如果我创建新的API说API2,那么我需要再次执行相同的操作,并再次为node_modules下载所有包:

我的问题是:我们无法在本地下载和存储这些软件包并在我们需要时使用,就像我们在Python或C ++中一样,而不是每次都下载。

2 个答案:

答案 0 :(得分:1)

您可以使用g标志安装包globaly。例如:npm install -g <package_name>
如果您想安装具有特定版本的全球软件包:npm install -g <package_name>@<version>

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

例如,应用程序A可能具有应用程序B具有的3个共同包,但这些包的版本不同,因为A应用程序的包版本无法运行B应用程序。这就是为什么,您必须使用npm install安装每个应用的所有包。

答案 1 :(得分:0)

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