pynpm

"Python interface to your NPM and package.json."


Keywords
npm, node, package, json
License
BSD-3-Clause
Install
pip install pynpm==0.2.0

Documentation

PyNPM

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)

!DANGER!

This option is not recommended for security reasons. It should only be used on trusted inputs.