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.
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 |
brew install egoist/tap/dumyay -S dum
# or
paru -S dumCheck https://aur.archlinux.org/packages/dum for version info.
curl -sSL https://bina.egoist.dev/egoist/dum | shcargo install dumscoop install dumDownload a release manually and move it to /usr/local/bin manually.
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:
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 --helpDum is not a package manager yet, but we forward install, add, remove commands to the package manager you're currently using:
# 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 vueWe detect the package manager automatically by checking for lock files in the current directory. If no lock file is found, we ask you to select a package manager first.
- package.json vars are not supported, I personally never used it, if you believe it's necessary, please leave a comment here.
I want to try and learn Rust so I made this. Inspired by bun.
cargo run -- <...args to test>MIT © EGOIST