# ri
A rust version ni.
> [ni](https://github.com/antfu/ni) - 💡 Use the right package manager
cargo install rni
npm · yarn · pnpm · bun
### `ri` - install
```bash
ri
# npm install
# yarn install
# pnpm install
# bun install
```
```bash
ri vite
# npm i vite
# yarn add vite
# pnpm add vite
# bun add vite
```
```bash
ri -f
# npm ci
# yarn install --frozen-lockfile
# pnpm i --frozen-lockfile
# bun install --no-save
```
### `ri r` - run
```bash
ri r dev
# npm run dev
# yarn run dev
# pnpm run dev
# bun run dev
```
Specially, you can use `ri rd` to run scripts ` run dev`
```bash
ri r
# interactively select the script to run
# supports https://www.npmjs.com/package/npm-scripts-info convention
```
### `ri un` - uninstall
```bash
ri un webpack
# npm uninstall webpack
# yarn remove webpack
# pnpm remove webpack
# bun remove webpack
```
## Other useful commands
### clean your workspace
- use `ri rm` to remove node_modules/**
- use `ri rl` to remove lockfile of current agent, like `yarn.lock` / `pnpm-lock.yaml` / `package-lock.json` / `bun.lockb`
### clone a repo
> you don't need to paste the url, just press enter
- step 1: copy the repo url
- step 2: `ri cl`
full command: `ri cl `
### git push
- `ri ps` - git push
### git pull
- `ri pl` - git pull
### git log
- `ri log`
```bash
git log --graph --oneline --decorate
```
### get package info
- `ri info` - get package info of current directory
### Open the browser to the package's repository
- `ri repo` - open the browser to the package's repository
### How?
**ri** assumes that you work with lockfiles (and you should)
Before it runs, it will detect your `yarn.lock` / `pnpm-lock.yaml` / `package-lock.json` / `bun.lockb` to know current package manager (or `packageManager` field in your packages.json if specified), and runs the [corresponding commands](https://github.com/JiatLn/ri/blob/main/src/agents.rs).
## License
[MIT](./LICENSE) License © 2022-Present [JiatLn](https://github.com/JiatLn)