nodejs shell

Node.js externe Befehle mit Google zx optimieren

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.

Shou Arisaka
3 Min. Lesezeit
25. Nov. 2025

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.

Image

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
        }
    ]
}

Diesen Artikel teilen

Shou Arisaka 25. Nov. 2025

🔗 Links kopieren