Python interface to your NPM and package.json.
Further documentation is available on https://pynpm.readthedocs.io/.
PyNPM is on PyPI so all you need is:
$ pip install pynpm
First point PyNPM to your package.json
:
from pynpm import NPMPackage
pkg = NPMPackage('path/to/package.json')
Now you can run e.g. npm install
from within Python:
pkg.install()
Arguments are also support so you can run e.g. npm run build --report
:
pkg.run_script('build', '--report')
Want to use yarn
instead?
from pynpm import YarnPackage
pkg = YarnPackage('path/to/package.json')
pkg.install()
By default NPM output is piped through and the function call will wait for NPM
to finish. If you want to silence the output or interact with process pass
wait=False
and you will get a subprocess.POpen object back:
p = pkg.install(wait=False)
p.wait()
By default you can run the following NPM commands:
build
init
install
link
run-script
start
stop
test
You can also run other NPM commands or restrict which commands you can run:
pkg = NPMPackage('path/to/package.json', commands=['install'])
Windows user may face the following error when running the NPM
command:
[WinError 2] The system cannot find the file specified
It means supbrossess is unable to run the specific command. To fix this issue,
use the shell=True
option uppon class initialization:
pkg = NPMPackage('path/to/package.json', shell=True)
!DANGER!
This option is not recommended for security reasons. It should only be used on trusted inputs.