GithubHelp home page GithubHelp logo

Comments (8)

simov avatar simov commented on April 28, 2024

Hi, @kapouer thanks for suggesting this. I have never used peerDependencies so far, but I agree that Grant can't be used without it's host modules. I'll consider using this option.

from grant.

simov avatar simov commented on April 28, 2024

I did some testing with peerDependencies and I don't think they quite work for this case.

Currently I use Grant in project that uses express version 3.4.4 and it works without a problem. In case of a peer dependency I won't be able to install Grant if the peer dependency is set to 4.x. On the other hand I really do need to specify express 4.x because that's what I'm testing against.

Same for the other 4 express middlewares that I use, if only one of these modules is added as a dependency to the consumer project and have a version mismatch, the install will fail.

No idea how's the situation with different versions of Koa, but then again I'm actually requiring these modules inside the Koa consumer implementation.

Recently I added support for Hapi, and that's the only consumer module I'm not requiring directly in my code.

from grant.

simov avatar simov commented on April 28, 2024

@kapouer this should be fixed in https://github.com/simov/grant/releases/tag/3.0.0 or at least that way you'll get only the modules required for your web framework of choice.

from grant.

kapouer avatar kapouer commented on April 28, 2024

perfect !

from grant.

simov avatar simov commented on April 28, 2024

@kapouer checkout the latest changelog here https://github.com/simov/grant/blob/master/CHANGELOG.md - express, koa and hapi are set as peerDependencies in their respective meta modules, also session and body-parser middlewares are no longer required internally, so the user is free to use any session store.

from grant.

sylvainlap avatar sylvainlap commented on April 28, 2024

npm3 no longer install peerDependencies. Is there a workaround ?

from grant.

simov avatar simov commented on April 28, 2024

NPM3 shifts the responsibility for fulfilling peer dependencies from library framework / plugin maintainers to application authors, in that line of thinking you now just get a warning if the dependency is missing.

As a consumer of this module you are responsible for specifying in your package.json which version of Koa your app/module is going to use. Essentially almost nothing have changed, you just have to make sure you explicitly specify Koa as dependency in your app.

from grant.

sylvainlap avatar sylvainlap commented on April 28, 2024

ok thanks

from grant.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.