/spm

The only package-manager you will ever need 💍

Primary LanguageTypeScriptMIT LicenseMIT

SPM introduction

Last version Travis (.com) Dependency status Dev Dependencies Status NPM Status

  • 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

Installation

yarn global add @omarsotillo/spm

Usage (--help)

    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 managers supported

Package manager Install Add Update Global Dev() Delete
yarn(js)
npm(js)
pnpm(js)
bundler(ruby)
cargo - cargo-edit(rust)
pip(python)
composer(php)

Contributing

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