4

我的项目结构像

 /
    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?

4

2 回答 2

7

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

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

"dependencies": {
  "public": "git://github.com/user/repo.git#ref", 
  "private": "git+ssh://git@github.com:user/repo.git#ref"
}
于 2012-07-21T10:23:29.263 回答
2

你可以在你的包中添加一些东西来调用这些 package.json 文件的 npm install 。像下面这样的东西可能会奏效。

"scripts": {
   "preinstall": "npm install Service_A/ && npm install Service_B/"
}
于 2012-07-25T04:01:02.097 回答