问题
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:
- Peer Dependencies
- Understanding the npm dependency model
- Common npm mistakes
- StackOverflow: npm peerDependencies during development
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.
回答1:
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.
回答2:
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.
来源:https://stackoverflow.com/questions/54246368/how-to-test-an-npm-module-with-peerdependencies