https://github.com/npm/libnpmexec
npm exec (npx) Programmatic API
https://github.com/npm/libnpmexec
Last synced: 10 months ago
JSON representation
npm exec (npx) Programmatic API
- Host: GitHub
- URL: https://github.com/npm/libnpmexec
- Owner: npm
- License: isc
- Archived: true
- Created: 2021-04-15T19:19:52.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-01-18T21:27:57.000Z (over 4 years ago)
- Last Synced: 2024-10-01T16:07:08.393Z (almost 2 years ago)
- Language: JavaScript
- Size: 1.31 MB
- Stars: 33
- Watchers: 9
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS.md
Awesome Lists containing this project
README
# We've Moved! 🚚
The code for this repo is now a workspace in the npm CLI repo.
[github.com/npm/cli](https://github.com/npm/cli)
You can find the workspace in /workspaces/libnpmexec
Please file bugs and feature requests as issues on the CLI and tag the issue with "ws:libnpmexec".
[github.com/npm/cli/issues](https://github.com/npm/cli)
# libnpmexec
[](https://npm.im/libnpmexec)
[](https://npm.im/libnpmexec)
[](https://github.com/npm/libnpmexec/actions?query=workflow%3Anode-ci)
[](https://coveralls.io/github/npm/libnpmexec?branch=main)
The `npm exec` (`npx`) Programmatic API
## Install
`npm install libnpmexec`
## Usage:
```js
const libexec = require('libnpmexec')
await libexec({
args: ['yosay', 'Bom dia!'],
cache: '~/.npm/_cacache',
npxCache: '~/.npm/_npx',
yes: true,
})
```
## API:
### `libexec(opts)`
- `opts`:
- `args`: List of pkgs to execute **Array**, defaults to `[]`
- `call`: An alternative command to run when using `packages` option **String**, defaults to empty string.
- `cache`: The path location to where the npm cache folder is placed **String**
- `npxCache`: The path location to where the npx cache folder is placed **String**
- `color`: Output should use color? **Boolean**, defaults to `false`
- `localBin`: Location to the `node_modules/.bin` folder of the local project to start scanning for bin files **String**, defaults to `./node_modules/.bin`. **libexec** will walk up the directory structure looking for `node_modules/.bin` folders in parent folders that might satisfy the current `arg` and will use that bin if found.
- `locationMsg`: Overrides "at location" message when entering interactive mode **String**
- `log`: Sets an optional logger **Object**, defaults to `proc-log` module usage.
- `globalBin`: Location to the global space bin folder, same as: `$(npm bin -g)` **String**, defaults to empty string.
- `output`: A function to print output to **Function**
- `packages`: A list of packages to be used (possibly fetch from the registry) **Array**, defaults to `[]`
- `path`: Location to where to read local project info (`package.json`) **String**, defaults to `.`
- `runPath`: Location to where to execute the script **String**, defaults to `.`
- `scriptShell`: Default shell to be used **String**, defaults to `sh` on POSIX systems, `process.env.ComSpec` OR `cmd` on Windows
- `yes`: Should skip download confirmation prompt when fetching missing packages from the registry? **Boolean**
- `registry`, `cache`, and more options that are forwarded to [@npmcli/arborist](https://github.com/npm/arborist/) and [pacote](https://github.com/npm/pacote/#options) **Object**
## LICENSE
[ISC](./LICENSE)