execa logo
# 🐢 Node.js files ## Run Node.js files ```js import {execaNode, execa} from 'execa'; await execaNode`file.js argument`; // Is the same as: await execa({node: true})`file.js argument`; // Or: await execa`node file.js argument`; ``` ## Node.js CLI flags When using the [`node`](api.md#optionsnode) option or [`execaNode()`](api.md#execanodescriptpath-arguments-options), the current Node.js [CLI flags](https://nodejs.org/api/cli.html#options) are inherited. For example, the subprocess will use [`--allow-fs-read`](https://nodejs.org/api/cli.html#--allow-fs-read) if the current process does. The [`nodeOptions`](api.md#optionsnodeoptions) option can be used to set different CLI flags. ```js await execaNode({nodeOptions: ['--allow-fs-write']})`file.js argument`; ``` ## Node.js version The same applies to the Node.js version, which is inherited too. [`get-node`](https://github.com/ehmicky/get-node) and the [`nodePath`](api.md#optionsnodepath) option can be used to run a specific Node.js version. Alternatively, [`nvexeca`](https://github.com/ehmicky/nvexeca) or [`nve`](https://github.com/ehmicky/nve) can be used. ```js import {execaNode} from 'execa'; import getNode from 'get-node'; const {path: nodePath} = await getNode('16.2.0'); await execaNode({nodePath})`file.js argument`; ```
[**Next**: 🌐 Environment](environment.md)\ [**Previous**: 📜 Scripts](scripts.md)\ [**Top**: Table of contents](../readme.md#documentation)