Skip to content

charmander/pqr

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

pqr

Runs package.json scripts without Node and npm overhead.

$ time npm run echo test

> @ echo pqr/test
> echo "test"

test

real    0m0.200s
user    0m0.186s
sys     0m0.017s

$ time pqr echo test
test

real    0m0.003s
user    0m0.003s
sys     0m0.000s

Installation

$ go get github.com/charmander/pqr

Intended incompatibilities with npm run-script

  • pqr runs only the specified script; npm also runs scripts with pre and post prefixes if they exist. Use [pqr prescript && ]pqr script[ && pqr postscript] for compatibility.

  • pqr uses the nearest package.json it finds along the current path (./package.json, ../package.json, ../../package.json, …). npm uses a prefix consistent across all commands: the nearest directory containing either a package.json or a node_modules after first removing all node_modules components from the end of the current path.

  • pqr adds arguments to the end of script commands with "$@"; npm double-quotes each argument after escaping only double quotes. (For example, npm run-script script -- '\"; yes #' will execute yes.)

  • pqr runs the script with an unmodified environment; npm adds several of its own strings. (See npm run-script env.)

  • pqr requires sh; npm will use %ComSpec% or cmd on Windows.

  • pqr doesn’t include npm’s node-gyp-bin in PATH (because it doesn’t require npm to exist); find the directory with npm run env dirname '$(which node-gyp)' and run PATH=node-gyp-bin:$PATH pqr … for near-compatibility.

Running nested scripts with pqr

Create an npm wrapper that delegates to pqr if its first argument is run-script or run, and the original npm otherwise; add it to your PATH before the original npm.

About

Runs package.json scripts more reliably, and without Node and npm overhead.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published