Node.js 子package.json中未满足的根package.json依赖项
假设我有一个这样的Typescript项目Node.js 子package.json中未满足的根package.json依赖项,node.js,typescript,Node.js,Typescript,假设我有一个这样的Typescript项目 root/ api/ package.json web/ package.json ... package.json 在rootpackage.json中安装了typescript依赖项(这是为了确保它在web和api中使用相同的版本) 如果我在web/package.json中安装了一个在Typescript上有peerdedency的包(比如ts loader),它会抱怨Typescript是一个未满足的依赖项 r
root/
api/
package.json
web/
package.json
...
package.json
在rootpackage.json
中安装了typescript依赖项(这是为了确保它在web和api中使用相同的版本)
如果我在web/package.json中安装了一个在Typescript上有peerdedency
的包(比如ts loader
),它会抱怨Typescript是一个未满足的依赖项
root-package.json
{
...
"devDependencies": {
"@types/node": "^11.11.7",
...
"typescript": "^3.3.4000"
}
}
{
...
"devDependencies": {
"ts-loader": "^5.3.3",
"webpack": "^4.29.6"
}
}
web/package.json
{
...
"devDependencies": {
"@types/node": "^11.11.7",
...
"typescript": "^3.3.4000"
}
}
{
...
"devDependencies": {
"ts-loader": "^5.3.3",
"webpack": "^4.29.6"
}
}
如果不在web/package.json中添加Typescript,我如何解决这个问题
如果不可能,如何确保在多个模块中使用相同版本的包?不幸的是,npm没有任何类型的package.json继承 由于这只是一个警告&由于node在父目录中查找
node\u模块
,所以一切都应该正常工作,我认为您可以执行以下操作之一:
- 不要理会这个警告
- 将ts加载程序上移到父目录
- 在每个子目录()中声明并安装typescript的精确版本,并在必要时手动更新
- 切换到Thread&use(我认为您仍然需要在每个包的依赖项中列出typescript,但至少它们只能安装一次。)
- 使用js monorepo管理器,可以管理交叉依赖关系