Skip to content

Ensure the different generated packages are using the same transitive dependenciesΒ #2726

@cprecioso

Description

@cprecioso

Currently, we have no mechanism to ensure that transitive dependencies are the same across the different packages of a Wasp app (user code, generated sdk, server, and client).

For example, in #2672, the following version mismatch was creating a typechecking error in the todo-typescript example:

todo-typescript $ npm why engine.io
[email protected]
node_modules/engine.io
  engine.io@"~6.5.2" from [email protected]
  node_modules/socket.io
    socket.io@"^4.6.1" from [email protected]
    .wasp/out/sdk/wasp
      [email protected]
      node_modules/wasp
        wasp@"file:.wasp/out/sdk/wasp" from the root project

todo-typescript $ (cd .wasp/build/server && npm why engine.io)
[email protected]
node_modules/engine.io
  engine.io@"~6.6.0" from [email protected]
  node_modules/socket.io
    socket.io@"^4.6.1" from the root project

Important

Please note that both packages request socket.io@^4.6.1, but one is installing [email protected], and the other [email protected].
Added by @sodic: take care of the this TODO when you fix the issue.

This happens because the package-lock.json from the server is being regenerated on each build, so it picks up new versions, but the one from the user code isn't, so it's stuck in the old one.

We need a mechanism to share dependencies, to ensure that such situation doesn't happen.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions