# Build

> This file is generated by cli/codegen. Do not edit this file manually.

Build the napi-rs project

## Usage

```sh
# CLI
napi build [--options]
```

```typescript
// Programatically
import { NapiCli } from '@napi-rs/cli'

new NapiCli().build({
  // options
})
```

## Options

| Options           | CLI Options           | type     | required | default | description                                                                                                               |
| ----------------- | --------------------- | -------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |
|                   | --help,-h             |          |          |         | get help                                                                                                                  |
| target            | --target,-t           | string   | false    |         | Build for the target triple, bypassed to `cargo build --target`                                                           |
| cwd               | --cwd                 | string   | false    |         | The working directory of where napi command will be executed in, all other paths options are relative to this path        |
| manifestPath      | --manifest-path       | string   | false    |         | Path to `Cargo.toml`                                                                                                      |
| packageJsonPath   | --package-json-path   | string   | false    |         | Path to `package.json`                                                                                                    |
| targetDir         | --target-dir          | string   | false    |         | Directory for all crate generated artifacts, see `cargo build --target-dir`                                               |
| outputDir         | --output-dir,-o       | string   | false    |         | Path to where all the built files would be put. Default to the crate folder                                               |
| platform          | --platform            | boolean  | false    |         | Add platform triple to the generated nodejs binding file, eg: `[name].linux-x64-gnu.node`                                 |
| jsPackageName     | --js-package-name     | string   | false    |         | Package name in generated js binding file. Only works with `--platform` flag                                              |
| jsBinding         | --js                  | string   | false    |         | Path and filename of generated JS binding file. Only works with `--platform` flag. Relative to `--output_dir`.            |
| noJsBinding       | --no-js               | boolean  | false    |         | Whether to disable the generation JS binding file. Only works with `--platform` flag.                                     |
| dts               | --dts                 | string   | false    |         | Path and filename of generated type def file. Relative to `--output_dir`                                                  |
| dtsHeader         | --dts-header          | string   | false    |         | Custom file header for generated type def file. Only works when `typedef` feature enabled.                                |
| noDtsHeader       | --no-dts-header       | boolean  | false    |         | Whether to disable the default file header for generated type def file. Only works when `typedef` feature enabled.        |
| strip             | --strip,-s            | boolean  | false    |         | Whether strip the library to achieve the minimum file size                                                                |
| release           | --release,-r          | boolean  | false    |         | Build in release mode                                                                                                     |
| verbose           | --verbose,-v          | boolean  | false    |         | Verbosely log build command trace                                                                                         |
| bin               | --bin                 | string   | false    |         | Build only the specified binary                                                                                           |
| package           | --package,-p          | string   | false    |         | Build the specified library or the one at cwd                                                                             |
| profile           | --profile             | string   | false    |         | Build artifacts with the specified profile                                                                                |
| crossCompile      | --cross-compile,-x    | boolean  | false    |         | [experimental] cross-compile for the specified target with `cargo-xwin` on windows and `cargo-zigbuild` on other platform |
| useCross          | --use-cross           | boolean  | false    |         | [experimental] use [cross](https://github.com/cross-rs/cross) instead of `cargo`                                          |
| watch             | --watch,-w            | boolean  | false    |         | watch the crate changes and build continiously with `cargo-watch` crates                                                  |
| features          | --features,-F         | string[] | false    |         | Space-separated list of features to activate                                                                              |
| allFeatures       | --all-features        | boolean  | false    |         | Activate all available features                                                                                           |
| noDefaultFeatures | --no-default-features | boolean  | false    |         | Do not activate the `default` feature                                                                                     |