1 | # npm-run-path
|
2 |
|
3 | > Get your [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) prepended with locally installed binaries
|
4 |
|
5 | In [npm run scripts](https://docs.npmjs.com/cli/run-script) you can execute locally installed binaries by name. This enables the same outside npm.
|
6 |
|
7 | ## Install
|
8 |
|
9 | ```sh
|
10 | npm install npm-run-path
|
11 | ```
|
12 |
|
13 | ## Usage
|
14 |
|
15 | ```js
|
16 | import childProcess from 'node:child_process';
|
17 | import {npmRunPath, npmRunPathEnv} from 'npm-run-path';
|
18 |
|
19 | console.log(process.env.PATH);
|
20 | //=> '/usr/local/bin'
|
21 |
|
22 | console.log(npmRunPath());
|
23 | //=> '/Users/sindresorhus/dev/foo/node_modules/.bin:/Users/sindresorhus/dev/node_modules/.bin:/Users/sindresorhus/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/usr/local/bin'
|
24 |
|
25 | // `foo` is a locally installed binary
|
26 | childProcess.execFileSync('foo', {
|
27 | env: npmRunPathEnv()
|
28 | });
|
29 | ```
|
30 |
|
31 | ## API
|
32 |
|
33 | ### npmRunPath(options?)
|
34 |
|
35 | Returns the augmented PATH string.
|
36 |
|
37 | #### options
|
38 |
|
39 | Type: `object`
|
40 |
|
41 | ##### cwd
|
42 |
|
43 | Type: `string | URL`\
|
44 | Default: `process.cwd()`
|
45 |
|
46 | The working directory.
|
47 |
|
48 | ##### path
|
49 |
|
50 | Type: `string`\
|
51 | Default: [`PATH`](https://github.com/sindresorhus/path-key)
|
52 |
|
53 | The PATH to be appended.
|
54 |
|
55 | Set it to an empty string to exclude the default PATH.
|
56 |
|
57 | ##### execPath
|
58 |
|
59 | Type: `string`\
|
60 | Default: `process.execPath`
|
61 |
|
62 | The path to the current Node.js executable. Its directory is pushed to the front of PATH.
|
63 |
|
64 | This can be either an absolute path or a path relative to the [`cwd` option](#cwd).
|
65 |
|
66 | ### npmRunPathEnv(options?)
|
67 |
|
68 | Returns the augmented [`process.env`](https://nodejs.org/api/process.html#process_process_env) object.
|
69 |
|
70 | #### options
|
71 |
|
72 | Type: `object`
|
73 |
|
74 | ##### cwd
|
75 |
|
76 | Type: `string | URL`\
|
77 | Default: `process.cwd()`
|
78 |
|
79 | The working directory.
|
80 |
|
81 | ##### env
|
82 |
|
83 | Type: `object`
|
84 |
|
85 | Accepts an object of environment variables, like `process.env`, and modifies the PATH using the correct [PATH key](https://github.com/sindresorhus/path-key). Use this if you're modifying the PATH for use in the `child_process` options.
|
86 |
|
87 | ##### execPath
|
88 |
|
89 | Type: `string`\
|
90 | Default: `process.execPath`
|
91 |
|
92 | The path to the Node.js executable to use in child processes if that is different from the current one. Its directory is pushed to the front of PATH.
|
93 |
|
94 | This can be either an absolute path or a path relative to the [`cwd` option](#cwd).
|
95 |
|
96 | ## Related
|
97 |
|
98 | - [npm-run-path-cli](https://github.com/sindresorhus/npm-run-path-cli) - CLI for this module
|
99 | - [execa](https://github.com/sindresorhus/execa) - Execute a locally installed binary
|
100 |
|
101 | ---
|
102 |
|
103 | <div align="center">
|
104 | <b>
|
105 | <a href="https://tidelift.com/subscription/pkg/npm-npm-run-path?utm_source=npm-npm-run-path&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
|
106 | </b>
|
107 | <br>
|
108 | <sub>
|
109 | Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
|
110 | </sub>
|
111 | </div>
|