GithubHelp home page GithubHelp logo

robertcraigie / nodejs-pypi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from samwillis/nodejs-pypi

0.0 1.0 0.0 26 KB

Project to repackage Node.js releases as Python binary wheels for distribution via PyPI

License: Other

JavaScript 0.28% Python 99.72%

nodejs-pypi's Introduction

Node.js PyPI distribution

Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser.

The nodejs-bin Python package redistributes Node.js so that it can be used as a dependency of Python projects. With nodejs-bin you can call nodejs, npm and npx from both the command line and a Python API.

Note: this is an unofficial Node.js distribution.

This is intended for use within Python virtual environments and containers, it should probably not be used for global installation.

This PyPI distribution is provided by https://github.com/samwillis/nodejs-pypi.

Install

To install:

pip install nodejs-bin

By default the command line node, npm and npx commands are not installed to prevent collisions with already installed Node.js versions. To install them:

pip install 'nodejs-bin[cmd]'

You can specify the Node.js version to install with:

pip install nodejs-bin==<version>

# Example:
pip install nodejs-bin==16.15.1

Command Line Usage

To run Node.js from the command line, use:

python -m nodejs

npm and npx are also available as nodejs.npm and nodejs.npx:

python -m nodejs.npm
python -m nodejs.npx

If you installed the optional command line commands with pip install 'nodejs-bin[cmd]' (see above), you can use them directly from the command line as you would normally with Node.js:

node
npm
npx

Python API Usage

node-bin has a simple Python API that wraps the Node.js command line with the Python subprocess.

For node, npm and npx there are .call(), .run() and .Popen() methods that match the equivalent subprocess methods.

To run Node.js from a Python program and return the exit code:

from nodejs import node, npm, npx

# Run Node.js and return the exit code.
node.call(['script.js', 'arg1', ...], **kwargs)

# Run npm and return the exit code.
npm.call(['command', 'arg1', ...], **kwargs)

# Run npx and return the exit code.
npx.call(['command', 'arg1', ...], **kwargs)

The call(args, **kwargs) functions wrap subprocess.call(), passes though all kwargs and returns the exit code of the process.

To run Node.js from a Python program and return a CompletedProcess object:

from nodejs import node, npm, npx

# Run Node.js and return the exit code.
node.run(['script.js', 'arg1', ...], **kwargs)

# Run npm and return the exit code.
npm.run(['command', 'arg1', ...], **kwargs)

# Run npx and return the exit code.
npx.run(['command', 'arg1', ...], **kwargs)

The run(args, **kwargs) functions wrap subprocess.run(), passes though all kwargs and returns a CompletedProcess.

Additionally, to start a Node.js process and return a subprocess.Popen object, you can use the Popen(args, **kwargs) functions:

from nodejs import node, npm, npx

# Start Node.js and return the Popen object.
node_process = node.Popen(['script.js', 'arg1', ...], **kwargs)

# Start npm and return the Popen object.
npm_process = npm.Popen(['command', 'arg1', ...], **kwargs)

# Start npx and return the Popen object.
npx_process = npx.Popen(['command', 'arg1', ...], **kwargs)

The Popen(args, **kwargs) functions wrap subprocess.Popen(), passes though all kwargs and returns a Popen object.

The nodejs.node api is also available as nodejs.run and nodejs.call and nodejs.Popen.

Finally, there are a number of convenient attributes on the nodejs module:

  • nodejs.node_version: the version of Node.js that is installed.
  • nodejs.path: the path to the Node.js executable.

Versions

nodejs-bin offers Node.js Current and LTS (long-term support) versions. See the Node.js Documentation for more information.

The full list of versions is available on PyPI is here: https://pypi.org/project/nodejs-bin/#history

License

The Node.js license.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.