"Python interface to your NPM and package.json."
Project description
Python interface to your NPM and package.json.
Further documentation is available on https://pynpm.readthedocs.io/.
Installation
PyNPM is on PyPI so all you need is:
$ pip install pynpm
Usage
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'])
Trouble shooting
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)
Changes
Version 0.3.0 (released 2025-02-20)
Add PNPMPackage
Version 0.2.0 (released 2023-11-27)
Added shell argument.
Package structure update.
Added black formatting.
Dropped Python 3.6 support.
Version 0.1.2 (released 2020-05-06)
Deprecated Python versions lower than 3.6.0. Now supporting 3.6.0 and 3.7.0.
Version 0.1.1 (released 2017-05-16)
Fix problem with testing click CLI output.
Version 0.1.0 (released 2017-05-12)
Initial public release.