npm_rs

License (MIT OR APACHE) GitHub Workflow Status Crates.io docs.rs

A library to run npm commands from your Rust build script.

Documentation

This library will aid you in executing npm commands when building your crate/bin, removing the burden of having to manually do so or by using a tool other than Cargo.

This crate provides an abstraction over Command to use npm in a simple and easy package with fluent API.

npm_rs exposes NpmEnv to configure the npm execution enviroment and Npm to use said enviroment to execute npm commands.

Examples

Manual NODE_ENV setup

```rust // build.rs

use npm_rs::*;

let exitstatus = NpmEnv::default() .withnodeenv(&NodeEnv::Production) .withenv("FOO", "bar") .init_env() .install(None) .run("build") .exec()?; ```

Automatic NODE_ENV setup

```rust // build.rs

use npm_rs::*;

let exitstatus = NpmEnv::default() .withnodeenv(&NodeEnv::fromcargoprofile().unwrapordefault()) .withenv("FOO", "bar") .init_env() .install(None) .run("build") .exec()?; ```

License

npm_rs is either distributed under MIT or Apache-2.0 license. Choose as you please.