nodejs使用npm + package.json解析依赖关系

时间:2012-06-21 09:35:03

标签: node.js npm

我的项目结构如

 /
    index.js
    package.json
    node_modules
    |_Service_A
      |__main.js
      |__package.json
    |_Service_B
      |__main.js
      |__package.json

当我在项目根目录上执行npm install时,解决了/package.json中提到的依赖项,但没有解析node_modules / Service_A / package.json或node_modules / Service_B / package.json中的依赖项。如何让npm解决不同文件夹之间的依赖关系?

Service_A和Service_B是我在node_modules [他们有依赖项]中预加载的本地模块。我知道我可以接受它们的依赖并将它们放在顶层json中,但是如果它们依赖于相同的模块但不同的版本会怎样。例如:Service_A需要jquery 1.6和Service_B jquery 1.7?

2 个答案:

答案 0 :(得分:7)

由于Service_A和Service_B是本地模块,我假设未在您的顶级package.json dependecies部分中定义。所以npm不知道它们甚至存在。

考虑在git存储库下开发本地模块,然后您可以通过以下方式定义它们:

"dependencies": {
  "public": "git://github.com/user/repo.git#ref", 
  "private": "git+ssh://git@github.com:user/repo.git#ref"
}

答案 1 :(得分:2)

您可以在包中添加一些内容,以便在这些package.json文件上调用npm install。像下面这样的东西可以解决问题。

"scripts": {
   "preinstall": "npm install Service_A/ && npm install Service_B/"
}