cross-spawn-windows-exe

Cross-platform support for running Windows executables

Usage no npm install needed!

<script type="module">
  import crossSpawnWindowsExe from 'https://cdn.skypack.dev/cross-spawn-windows-exe';
</script>

README

cross-spawn-windows-exe

Cross-platform support for running Windows executables via Node.js.

CI codecov

Utilizes @malept/cross-spawn-promise (and by extension, cross-spawn) to execute Windows executables regardless of platform.

For all platforms, Node 10 or above is required.

On non-Windows, non-WSL host systems, the following dependencies are required:

  • .NET executables: Mono
  • All other Windows executables: Wine

Usage

Using the cross-spawn-windows-exe API is similar in terms of function signature to spawn in @malept/cross-spawn-promise.

Running a .NET executable

// Note: top-level await exists in Node >= 14.8.0. In earlier versions of Node, please wrap in an
// async function.

const { spawnDotNet } = require("cross-spawn-windows-exe");

await spawnDotNet("./hellodotnet.exe", ["--arg1"]);

Running a Windows executable

// Note: top-level await exists in Node >= 14.8.0. In earlier versions of Node, please wrap in an
// async function.

const { spawnExe } = require("cross-spawn-windows-exe");

await spawnExe("./hellowindows.exe", ["--arg1"]);

Normalizing Paths

Executables generally can't handle UNIX-style paths that Windows Subsystem for Linux (WSL) passes in, since it's a Linux environment. This module provides a function to convert those paths from UNIX-style to Windows-style (via wslpath, which should be installed by default on every WSL distribution), if the host system is determined to be WSL. For non-WSL environments, this is a no-op.

// Note: top-level await exists in Node >= 14.8.0. In earlier versions of Node, please wrap in an
// async function.

const { normalizePath, spawnExe } = require("cross-spawn-windows-exe");

const normalizedPath = await normalizePath("/tmp/foo");
await spawnExe("./openfile.exe", ["--filename", normalizedPath]);

Legal

This module is licensed under the Apache License, version 2.0. See LICENSE for details.