mirror of
				https://kkgithub.com/actions/setup-node.git
				synced 2025-11-04 04:31:55 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# `@actions/exec`
 | 
						|
 | 
						|
## Usage
 | 
						|
 | 
						|
#### Basic
 | 
						|
 | 
						|
You can use this package to execute your tools on the command line in a cross platform way:
 | 
						|
 | 
						|
```
 | 
						|
const exec = require('@actions/exec');
 | 
						|
 | 
						|
await exec.exec('node index.js');
 | 
						|
```
 | 
						|
 | 
						|
#### Args
 | 
						|
 | 
						|
You can also pass in arg arrays:
 | 
						|
 | 
						|
```
 | 
						|
const exec = require('@actions/exec');
 | 
						|
 | 
						|
await exec.exec('node', ['index.js', 'foo=bar']);
 | 
						|
```
 | 
						|
 | 
						|
#### Output/options
 | 
						|
 | 
						|
Capture output or specify [other options](https://github.com/actions/toolkit/blob/d9347d4ab99fd507c0b9104b2cf79fb44fcc827d/packages/exec/src/interfaces.ts#L5):
 | 
						|
 | 
						|
```
 | 
						|
const exec = require('@actions/exec');
 | 
						|
 | 
						|
const myOutput = '';
 | 
						|
const myError = '';
 | 
						|
 | 
						|
const options = {};
 | 
						|
options.listeners = {
 | 
						|
  stdout: (data: Buffer) => {
 | 
						|
    myOutput += data.toString();
 | 
						|
  },
 | 
						|
  stderr: (data: Buffer) => {
 | 
						|
    myError += data.toString();
 | 
						|
  }
 | 
						|
};
 | 
						|
options.cwd = './lib';
 | 
						|
 | 
						|
await exec.exec('node', ['index.js', 'foo=bar'], options);
 | 
						|
```
 | 
						|
 | 
						|
#### Exec tools not in the PATH
 | 
						|
 | 
						|
You can use it in conjunction with the `which` function from `@actions/io` to execute tools that are not in the PATH:
 | 
						|
 | 
						|
```
 | 
						|
const exec = require('@actions/exec');
 | 
						|
const io = require('@actions/io');
 | 
						|
 | 
						|
const pythonPath: string = await io.which('python', true)
 | 
						|
 | 
						|
await exec.exec(`"${pythonPath}"`, ['main.py']);
 | 
						|
```
 |