我的项目结构如
/ 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?
答案 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/"
}