简体   繁体   中英

How to test an npm module with peerDependencies?

I am new to understand peerDependencies , and I have read the following references seeking as to how to test an npm module contains peerDependencies within its package.json:

However, I have not found a clear solution for testing npm with peerDependencies. Some recommend adding the peerDependencies as globals, and some reference to include peerDependencies within devDependencies, and neither seems right.

For example, I have a package that has a peer dependency, a custom logger, and this logger needs to be configured by its host package before it can be used.

This is how I perform most tests scripted in using this Gulp task:

function testRunner() {
  return (
    gulp
      .src('./tests/**/*.js', { read: false })
      .pipe(
        mocha({
          exit: true,
          timeout: 10000
        })
      )
      .on('error', console.error)
  );
}

I did receive a helpful suggestion (see comments below, @estus) to use npm-install-peers , however, I am not yet certain if it can configure a peer dependency before usage, as it would be performed by the host package.

Feedback and Suggestions are most appreciated.

I had connected with the authors of npm-install-peers, and the response from one of the authors,

When it comes to testing your package/project on CI, I believe the correct way to do things is manually adding your peer dependencies to your dev dependencies. No need for this little tool.

In my case, I developed a library last time that use ioredis as peer dependency. My solution was to put that library as well in dev dependency.

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

it worked well and no issue so far using this approach.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM