我是新来了解 peerDependencies 的人,我已阅读以下参考资料,以寻求有关如何测试npm模块的package.json中包含peerDependencies的信息:
但是,我还没有找到使用peerDependencies测试npm的明确解决方案。有些建议将peerDependencies添加为全局变量,有些建议将devDependencies中包含peerDependencies,但似乎都不对。
例如,我有一个具有对等依赖性的程序包,一个自定义记录器,在使用该记录器之前,需要先由其主机包对其进行配置。
这是我执行使用Gulp任务编写的大多数测试的方式:
function testRunner() {
return (
gulp
.src('./tests/**/*.js', { read: false })
.pipe(
mocha({
exit: true,
timeout: 10000
})
)
.on('error', console.error)
);
}
我确实收到了使用npm-install-peers的有用建议(请参阅下面的评论,@ estus),但是,我不确定它是否可以在使用之前配置对等依赖项,因为它将由主机执行包。
反馈和建议深表感谢。
答案 0 :(得分:2)
我已经与npm-install-peers的作者建立了联系,其中一位作者的回应是
在CI上测试您的套件/项目时,我相信 正确的处理方式是手动将对等依赖项添加到 您的开发依赖项。不需要这个小工具。
答案 1 :(得分:2)
就我而言,我上次开发了一个使用ioredis
作为对等依赖项的库。我的解决方案是将该库也置于dev依赖项中。
// package.json
"peerDependencies": {
"ioredis": "4.x"
},
"devDependencies": {
"ioredis": "4.x"
}
它运行良好,到目前为止,使用这种方法没有问题。