当前位置: 首页 > 后端技术 > Node.js

Node.js应用对等依赖使用

时间:2023-04-04 00:36:17 Node.js

有时我们可以从package.json文件中找到如下定义:{//..."peerDependencies":{"libraryName":"1.x"}}dependencies即我们的项目取决于。devDependencies是开发阶段所需的包。比如像Jest这样的测试框架或像Babel或ESLint这样的其他实用程序。在这两种情况下,当我们安装一个包时,npm会自动安装它的依赖项,而devDependencies.peerDependencies的工作方式不同。它们不会自动安装。当依赖项在包中列为peerDependency时,它不会自动安装。相反,包含此包的应用程序代码必须将其作为依赖项包含在内。看一个例子。项目a的package.json包含项目b:{//..."dependencies":{"b":"1.x"}}项目b的package.json:{//..."peerDependencies":{"c":"1.x"}}所以在包A中我们必须添加c作为依赖,否则npm会在你安装包B时抛出警告(并且代码可能会在运行失败时中断):package.jsonofa:{//..."dependencies":{"b":"1.x","c":"1.x"}}peerDependencies的一个问题:如果我的包依赖于请求版本2和otherlibrary,但是otherlibraries依赖于请求版本1,生成的依赖关系图如下所示:现在some-other-library有自己的请求v1副本,同时不干扰应用程序自己的请求包v2副本。总之,peerdependencies几乎就像普通的dependencies,但不是在A和B之间定义强需求(即你正在开发的项目和它所依赖的项目),它们是为了指定你的代码需要的包,但是不直接要求它。假设我们正在开发模块A,它是模块B的插件。这意味着A将与B一起使用,为此,A需要遵循特定的结构,并且很可能具有符合以下标准的公共API从B的方法调用。//在你的代码中...B.addPlugin(newA())//....B.method()//在这里内部使用A的代码。