如何使用peerDependencies测试npm模块?

时间:2019-01-18 00:52:59

标签: node.js npm mocha gulp-mocha peer-dependencies

我是新来了解 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),但是,我不确定它是否可以在使用之前配置对等依赖项,因为它将由主机执行包。

反馈和建议深表感谢。

2 个答案:

答案 0 :(得分:2)

我已经与npm-install-peers的作者建立了联系,其中一位作者的回应是

  

在CI上测试您的套件/项目时,我相信   正确的处理方式是手动将对等依赖项添加到   您的开发依赖项。不需要这个小工具。

答案 1 :(得分:2)

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

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

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