Heim >Web-Frontend >js-Tutorial >So schreiben Sie Shell -Skripte im Knoten mit der ZX -Bibliothek von Google.

So schreiben Sie Shell -Skripte im Knoten mit der ZX -Bibliothek von Google.

Lisa Kudrow
Lisa KudrowOriginal
2025-02-09 09:59:12941Durchsuche

In diesem Artikel wird die ZX -Bibliothek von Google untersucht, ein leistungsstarkes Tool zum Straffung von Shell -Skripten innerhalb von Node.js -Projekten. Wir erstellen ein Befehlszeilen-Dienstprogramm, um neue Node.js-Projekte zu starten und die Funktionen von ZX zu präsentieren.

How to Write Shell Scripts in Node with Google's zx Library

wichtige Vorteile von Googles ZX:

  • vereinfacht Shell Scripting in node.js mithilfe einer vertrauten JavaScript -Syntax.
  • behandelt die Erstellung von Kindern, stdout und stderr effizient.
  • bietet hilfreiche Dienstprogramme wie $ (für die Befehlsausführung), cd(), question() und der Zugriff auf beliebte Bibliotheken (z. B. chalk, minimist, fetch, fs-extra). 🎜>
  • fördert Best Practices: Verwenden von ECMascript -Modulen und lokalem Abhängigkeitsmanagement.
  • TypeScript -Kompatibilität (mit geringfügigen Konfigurationsanpassungen).

Die Herausforderung des herkömmlichen Shell -Skripts:

traditionelles Shell -Skript (Bash, ZSH) kann umständlich sein. Verwaltung von untergeordneten Prozessen, dem Entkommen von Argumenten und dem Umgang mit Stdout/Stderr erhöht Komplexität. Während Bash integrierte Funktionen bietet, kann seine Syntax für komplexe Logik- oder Benutzereingabedehandelung weniger intuitiv sein. Node.js bietet zwar Kernmodule und Flexibilität von JavaScript, erfordert das manuelle kindliche Prozessmanagement, was es weniger einfach macht.

Google's ZX: Eine Lösung:

ZX löst diese Probleme elegant. Es wickelt das kindliche Prozessmanagement und rationalisiert die E/O -Handhabung.

Voraussetzungen:

    grundlegende JavaScript und Node.js Wissen.
  • Terminalbefehl Vertrautheit.
  • node.js & gt; = v14.13.1.
Der vollständige Code ist auf GitHub verfügbar.

Wie ZX funktioniert:

Die Kernfunktion lautet

. Zum Beispiel: $

<code class="language-javascript">import { $ } from "zx";

await $`ls`;</code>
Dies führt

aus und erfasst die Ausgabe. ZX verwendet markierte Template -Literale für eine saubere Syntax. Weitere nützliche Funktionen sind ls für das Ändern von Verzeichnissen und cd() für die Benutzereingabe. Es integriert auch beliebte Bibliotheken wie question() (für farbige Ausgabe) und chalk (für das Analyse des Befehlszeilenarguments). minimist

Hallo Welt mit ZX:

    Erstellen Sie ein Projekt:
  1. mkdir zx-project && cd zx-project && npm init -y
  2. Installieren Sie ZX:
  3. npm install --save-dev zx
  4. erstellen
  5. : hello.mjs
<code class="language-javascript">#! /usr/bin/env node
import { $ } from "zx";
$.verbose = false; // Suppress command echoing
const output = (await $`ls`).stdout.trim(); // Trim extra newline
console.log(output);</code>
    machen es ausführbar:
  1. chmod u x hello.mjs
  2. run:
  3. ./hello.mjs

ZX mit TypeScript:

TypeScript erfordert ein tsconfig.json (z. B. "compilerOptions": {"target": "es2017", "module": "commonjs"}) und ein Wickeln await in einem iife:

<code class="language-javascript">import { $ } from "zx";

await $`ls`;</code>

Erstellen eines Projektbootstrappers:

Erstellen wir ein Tool (bootstrap-tool.mjs), das das Projekt -Setup automatisiert:

  1. importieren notwendige Module: import { $, argv, cd, chalk, fs, question } from "zx"; import path from "path"; import which from "which";
  2. Fehlerbehandlungsfunktion: function exitWithError(msg) { console.error(chalk.red(msg)); process.exit(1); }
  3. prüfen Sie, ob erforderliche Programme (git, node, npx): async function checkRequiredProgramsExist(programs) { ... }
  4. Handle --directory Argument: Überprüfen Sie, ob es existiert und ein gültiges Verzeichnis ist, dann cd() in es.
  5. globale Git -Einstellungen überprüfen (user.name, user.email).
  6. Git initialisieren: await $ Git init ;
  7. generieren Sie package.json (mit npm init -y), fordert das Modulsystem (commonjs oder module) auf und aktualisieren Sie package.json.
  8. Eingabeaufforderung für und installieren NPM -Pakete (mit Validierung).
  9. Konfigurationsdateien (.gitignore, EditorConfig, schöner, Eslint) mit npx gitignore und npx mrm
  10. generieren.
  11. generieren Sie eine grundlegende Readme.md.
  12. Änderungen an Git.

Dieser umfassende Bootstrapper optimiert die Projektinitialisierung erheblich. Weitere Verbesserungen können automatische Verzeichniserstellung, Open-Source-Projektfunktionen (Lizenz, Mitwirkender Covenant) und Github-Repository-Automatisierung sein.

häufig gestellte Fragen (FAQs):

Der vorgesehene FAQS-Abschnitt ist bereits umfassend und gut geschrieben. Es sind keine Änderungen erforderlich.

Das obige ist der detaillierte Inhalt vonSo schreiben Sie Shell -Skripte im Knoten mit der ZX -Bibliothek von Google.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn