Googles Open-Source-Projekt zx ermöglicht die effiziente Ausführung externer Befehle wie Bash, Powershell und Eingabeaufforderung in node.js durch natürliche Einbettung in mjs-Skripte. Nachfolgend stellen wir die Installation und Verwendung von zx vor.

Github:
google/zx: A tool for writing better scripts
Installieren Sie nvm (node.js Versionsverwaltungssystem) mit chocolatey. Dies ermöglicht es Ihnen, eine beliebige Version von node.js in einem späteren Schritt zu installieren.
choco install nvm -y
refreshenv
Für einen Überblick über was chocolatey ist und wie man es installiert, siehe Folgendes.
Windows 11にchocolateyをインストールする
Verwenden Sie das installierte nvm, um node.js Version 14.13.1 mit dem folgenden Befehl zu installieren. node.js v14.13.1 ist eine der Anforderungen, die als notwendige Umgebung für Google/xz angegeben ist. Installieren Sie v14.13.1 oder höher von node.js.
nvm install 14.13.1
Überprüfen Sie, dass node.js installiert ist.
> C:\ProgramData\nvm\v14.13.1\node64.exe -v
v14.13.1
Erstellen Sie ein beliebiges Verzeichnis und wechseln Sie dorthin. Initialisieren Sie das node.js-Projekt mit dem Befehl npm init, um eine package.json-Datei zu erstellen, und installieren Sie die zx-Bibliothek mit dem Befehl npm install.
cd C:\pg\node\_win_v14.13.1_dev\
C:\ProgramData\nvm\v14.13.1\npm.cmd init
C:\ProgramData\nvm\v14.13.1\npm.cmd install [email protected]
Nachfolgend ein Beispielcode eines node.js-Programms, das zx verwendet.
Bei Ausführung als .mjs-Datei:
// tmp.mjs
import 'zx/globals'
await $`pwd`
Um die obige .mjs-Datei auszuführen, führen Sie sie als node.js-Programm mit dem folgenden Befehl aus:
./node_modules/.bin/zx .\tmp.mjs
# oder
node .\tmp.mjs
# oder
C:\ProgramData\nvm\v14.13.1\node64.exe .\tmp.mjs
Bei Ausführung als .js-Datei:
// tmp.js
const zx = require('zx/globals');
(async function(){
await $`pwd`;
})();
Um die obige .js-Datei auszuführen:
node .\tmp.js
Jedes der obigen Programme ist das einfachste Beispiel, das plattformübergreifend verwendet werden kann, und führt den Befehl “pwd” als externen Befehl aus und erhält die Ausgabe.
Der Befehl “pwd” gibt den Verzeichnispfad des aktuellen Arbeitsverzeichnisses aus. Das Ergebnis dieser Ausgabe hängt davon ab, in welcher Umgebung und welchem Betriebssystem das node.js-Programm ausgeführt wird, daher kann nicht definitiv gesagt werden, was es sein wird, aber in meiner Umgebung läuft es in Windows Powershell- und WSL Bash-Umgebungen, sodass es eine Ausgabe wie die folgende erzeugt:
$ pwd
/mnt/c/pg/node/_win_v14.13.1_dev
Beachten Sie, dass die Abhängigkeiten meiner Ausführungsumgebung und die vscode launch.json-Einstellungen wie folgt sind:
(package.json)
{
"name": "win_v14.13.1_dev",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"nodemon": "^2.0.15",
"zx": "^4.2.0"
}
}
(launch.json)
{
"version": "0.2.0",
"configurations": [
{
"type": "pwa-node",
"request": "launch",
"name": "nodejs",
"skipFiles": [
"<node_internals>/**"
],
"console": "integratedTerminal",
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/nodemon",
"runtimeArgs": [
"--ext",
"js,mjs",
"--exec",
"C:/ProgramData/nvm/v14.13.1/node64.exe ${file}"
],
"restart": true
}
]
}