node.js - 如何使用 peerDependencies 测试 npm 模块?
问题描述
我是新了解peerDependencies,并且我已阅读以下参考资料,以了解如何测试 npm 模块在其 package.json 中包含 peerDependencies:
但是,我还没有找到一个明确的解决方案来测试带有 peerDependencies 的 npm。有些人建议将 peerDependencies 添加为全局变量,有些人建议将 peerDependencies 包含在 devDependencies 中,但似乎都不对。
比如我有一个包,它有一个peer依赖,一个自定义的logger,这个logger需要被它的宿主包配置好才能使用。
这就是我使用这个 Gulp 任务执行大多数脚本测试的方式:
function testRunner() {
return (
gulp
.src('./tests/**/*.js', { read: false })
.pipe(
mocha({
exit: true,
timeout: 10000
})
)
.on('error', console.error)
);
}
我确实收到了一个有用的建议(参见下面的评论,@estus)来使用npm-install-peers,但是,我还不确定它是否可以在使用前配置对等依赖项,因为它将由主机包执行。
非常感谢您的反馈和建议。
解决方案
就我而言,我上次开发了一个ioredis
用作对等依赖项的库。我的解决方案是将该库也放在开发依赖项中。
// package.json
"peerDependencies": {
"ioredis": "4.x"
},
"devDependencies": {
"ioredis": "4.x"
}
它运行良好,到目前为止使用这种方法没有问题。
推荐阅读
- web-scraping - 从下拉列表中选择元素并等待页面呈现内容的完美 Lua_Script
- hyperledger-fabric - Hyperledger Caliper 事务生命周期错误:peer 2 提出的响应错误未知:访问被拒绝通道 [] creator org
- python - 如何计算 LightGBM 分类器中的叶值?
- git - 通过 https 部署时的 git 推送错误消息
- c# - 在具有许多客户端的服务器中使用一个端口与多个端口?
- java - 异步 JAX-RS 实现中的 NullPointerException
- graphql - 使用替代 GraphQL 客户端连接到 Apollo Server
- mysql - docker容器的用户权限是否会影响主机对docker-compose.yml中挂载卷的权限?
- python-3.x - 从一个类方法获取信息到另一个类
- pdf - PDF 的流似乎不完整但正确呈现