A simple and lightweight tool to manage your monorepo. Comptroller's update command analyzes the packages in a given directory and identifies static require calls. Using this, it is able to update each package's package.json to include these as dependencies (Comptroller ignores Node.js builtin modules by default). Comptroller finds these modules in the project root's package.json (or a specified file) and adds the defined version to the subpackage's package.json. If a module is required but doesn't exist in the root package.json a warning is issued. If a module in the root package.json has a different version than one used in the subpackage package.json then it's version is updated in the subpackage. If a dependency is listed in the subpackage package.json but not found in the package source, a warning is issued. If a require call is found that references a local package, Comptroller locates the specified package's package.json and updates the issuing package's package.json dependencies with the version information of the specified package.