首页 > 解决方案 > 如何使用 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,但是,我还不确定它是否可以在使用前配置对等依赖项,因为它将由主机包执行。

非常感谢您的反馈和建议。

标签: node.jsnpmmocha.jsgulp-mochapeer-dependencies

解决方案


就我而言,我上次开发了一个ioredis用作对等依赖项的库。我的解决方案是将该库也放在开发依赖项中。

// package.json
"peerDependencies": {
    "ioredis": "4.x"
},
"devDependencies": {
    "ioredis": "4.x"
}

它运行良好,到目前为止使用这种方法没有问题。


推荐阅读