- Resolve conflicts with shared libraries in a interactive cli
- General commands: forget about the implementation of each package manager
- Accept flags from each command
- Support npm, yarn, pnpm, bundler, cargo, composer
yarn global add @omarsotillo/spm
Usage β‘οΈ
$ spm install - install all libraries in project package-managers
$ spm add <library/es> - add new library/es to the project-managers
$ spm update <library/es> - update library/es to the project-managers
$ spm run <command> - run a command in the projects package-manager
$ spm delete <library/es> - delete a library in the projects package-manager
$ spm outdated - check outdates libraries
$ spm list - list all libraries in all the projects
Options π (all command accepts specific manager flags)
--print, -p - Will print the command but not execute it
--global, -g - Global mode installation. Commands like add will be converted to global
--dev, -d - Add the command in development mode
--backend, -b - Run command in backend package manager only
--frontend, -f - Run command in frontend package manager only
Examples π
$ spm add react
π Add library in the package-managers that register a react package/library
Package manager | Install | Add | Update | Global | Dev() | Delete |
---|---|---|---|---|---|---|
yarn(js) | β | β | β | β | β | β |
npm(js) | β | β | β | β | β | β |
pnpm(js) | β | β | β | β | β | β |
bundler(ruby) | β | β | β | β | β | β |
cargo - cargo-edit(rust) | β | β | β | β | β | β |
pip(python) | β | β | β | β | β | β |
composer(php) | β | β | β | β | β | β |
You need (ts-node)[https://github.com/TypeStrong/ts-node]. Please, follow the instructions
yarn install
yarn run start
ts-node dist/index.js <command> <options> // e.g ts-node dist/index.js add react