max-mapper / max-mapper/player-physics

Is there any reason this needs the SPECIFIC three.js version 0.54.0

Open
#8 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
17
Forks
9
PR merge metrics
No merged PRs in 30d

Description

Installing all of maxogden's plugins results in three copies of Three.JS (all different versions) as NPM traverses the dependency hierarchy. For example, player-physics requires Three.JS version 0.54.0 (even though just about any Three.JS version has the vector and Object3D classes that it uses). Meanwhile, voxel-engine requires Three.JS version 0.56.0. There should only be one. This happens with other dependencies as well (multiple copies of the same dependency differing in minor version numbers). The problem is that various plugins' package.json files require unnecessarily SPECIFIC versioned dependencies. Unless there is a hard requirement for a very specific version of a dependency, a more permissive version filter should be used (I haven't seen such a requirement in any of the code but all of the package.json files are versioned specifically -- this becomes more of a headache for highly modularized projects like voxel.JS). Overly specific versioned dependencies defeat the purpose of a package manager.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the package.json dependency declarations mentioned in the issue, especially the Three.JS version required by player-physics. Compare them with the dependency versions used by the other plugins and check whether a more permissive range avoids duplicate installations. Done means the package declarations no longer unnecessarily pin compatible minor versions and npm can resolve a single compatible copy where possible.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, three.js
Domain
tooling
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.