dum replaces npm run and npx.
Instead of waiting 200ms for your npm client to start, it will start immediately.
💛 You can help the author become a full-time open-source maintainer by sponsoring him on GitHub.


CleanShot 2021-11-20 at 15 23 54@2x




How

This is written in Rust! (Or any compile-to-native language).

Benchmark (hyperfine "dum foo" "npm run foo" --warmup 10):

| Command | Mean [ms] | Min [ms] | Max [ms] | Relative | | :------------ | ----------: | -------: | -------: | ----------: | | dum foo | 41.7 ± 1.2 | 39.8 | 44.6 | 1.00 | | npm run foo | 333.7 ± 2.0 | 330.0 | 336.0 | 8.01 ± 0.23 |

Install

Homebrew

bash brew install egoist/tap/dum

Shell

bash curl -sSL https://bina.egoist.sh/egoist/dum | sh

Cargo

bash cargo install dum

GitHub Releases

Download a release manually and move it to /usr/local/bin manually.

Usage

dum <npm_script|bin_script> [...args_to_forward]: Run npm scripts or scripts in node_modules/.bin, like yarn run, npm run, npx.

If you want to pass flags to dum itself, like the -c flag to change directory, you should put it before the script name, like dum -c another/directory script_name --forward some_flag.

Examples:

```bash dum some-npm-script

dum some-npm-script --flags will --be forwarded

Like npx, but mush faster

dum some-npm-package-cli-name --flags will --be forwarded

Change working directory

dum -c packages/sub-package build

More

dum --help ```

Install Packages

Dum is not a package manager yet, but we forward install, add, remove commands to npm, pnpm and yarn automatically:

```bash

Run npm i or yarn or pnpm i depending on the project

dum install # or dum i

Like above but add packages

dum add react vue -D

dum remove react vue ```

Limitations

Inspiration

I want to try and learn Rust so I made this. Inspired by bun.

Sponsors

sponsors

License

MIT © EGOIST