ホームページ > ウェブフロントエンド > jsチュートリアル > Google' s zxライブラリを使用してノードでシェルスクリプトを書き込む方法

Google' s zxライブラリを使用してノードでシェルスクリプトを書き込む方法

Lisa Kudrow
リリース: 2025-02-09 09:59:12
オリジナル
935 人が閲覧しました

この記事では、node.jsプロジェクト内でシェルスクリプトを合理化するための強力なツールであるGoogleのZXライブラリを調査します。 新しいnode.jsプロジェクトをブートストラップするためにコマンドラインユーティリティを構築し、ZXの機能を紹介します。

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

GoogleのZXの重要な利点:

おなじみのJavaScript構文を使用して、node.jsでシェルスクリプトを簡素化します

チャイルドプロセスの作成、stdout、およびstderrを効率的に処理します。
  • (コマンド実行の場合)、
  • 、および人気のあるライブラリへのアクセスなどの有用なユーティリティを提供します(例:
  • $cd()question())。 🎜> chalkベストプラクティスを促進する:ECMAScriptモジュールとローカル依存管理管理の使用。 minimistタイプスクリプトの互換性(マイナーな構成調整を使用)fetch fs-extra
  • 伝統的なシェルスクリプトの課題:
  • 伝統的なシェルスクリプト(bash、zsh)は面倒です。 子どものプロセスの管理、議論の脱出、およびstdout/stderrの処理は複雑さを追加します。 Bashは組み込みの機能を提供していますが、その構文は複雑なロジックやユーザー入力処理に対して直感的ではありません。 node.jsは、コアモジュールとJavaScriptの柔軟性を提供している間、手動の子プロセス管理が必要であり、それを簡単にしません。

Googleのzx:a solution:

zxはこれらの問題をエレガントに解決します。 子どものプロセス管理をラップし、I/Oハンドリングを合理化します

前提条件:

基本的なJavaScriptおよびnode.jsの知識。

端末コマンドの親しみやすさ。

node.js> = v14.13.1。

    完全なコードはgithubで利用できます。
  • zxの仕組み:
  • コア関数は
です。 たとえば、

これはを実行し、出力をキャプチャします。 ZXは、クリーンな構文にタグ付きテンプレートリテラルを使用します。 その他の有用な機能には、ディレクトリを変更するおよびユーザー入力の場合は

に含まれます。 また、

(色付きの出力用)や$(コマンドライン引数の解析の場合)などの一般的なライブラリも統合します。

import { $ } from "zx";

await $`ls`;
ログイン後にコピー
ログイン後にコピー
zxのHello World:

ls cd() question()プロジェクトの作成:chalkminimist

zx:

をインストールします create

  1. mkdir zx-project && cd zx-project && npm init -y
  2. 実行可能にします:npm install --save-dev zx
  3. run:hello.mjs
typeScriptを備えた
#! /usr/bin/env node
import { $ } from "zx";
$.verbose = false; // Suppress command echoing
const output = (await $`ls`).stdout.trim(); // Trim extra newline
console.log(output);
ログイン後にコピー
    zx:
  1. chmod u x hello.mjs

    タイプスクリプトには、a tsconfig.json(例えば、"compilerOptions": {"target": "es2017", "module": "commonjs"})が必要です。 await

    import { $ } from "zx";
    
    await $`ls`;
    ログイン後にコピー
    ログイン後にコピー
    プロジェクトの構築Bootstrapper:

    プロジェクトのセットアップを自動化するツール()を作成しましょう

    必要なモジュールをインポート:bootstrap-tool.mjs

      エラー処理関数:
    1. import { $, argv, cd, chalk, fs, question } from "zx"; import path from "path"; import which from "which"; 必要なプログラム(
    2. function exitWithError(msg) { console.error(chalk.red(msg)); process.exit(1); })を確認してください
    3. handle
    4. 引数:それが存在し、有効なディレクトリであるかどうかを確認してからgit node npxグローバルGIT設定(async function checkRequiredProgramsExist(programs) { ... }
    5. )を確認してください
    6. gitを初期化:--directorygit initcd()
    7. 生成user.nameuser.emailを使用)、モジュールシステム(
    8. または
    9. )のプロンプト、およびawait $;を更新します。 NPMパッケージのプロンプトとインストール(検証付き)。
    10. package.jsonおよびnpm init -ycommonjsmodule基本的なreadme.md。package.jsonを生成します
    11. gitに変更をコミットします。
    12. この包括的なブートストラッパーは、プロジェクトの初期化を大幅に合理化します。 さらなる機能強化には、自動ディレクトリの作成、オープンソースプロジェクト機能(ライセンス、貢献者契約)、およびGitHubリポジトリオートメーションが含まれます。
    13. .gitignoreよくある質問(FAQ):npx gitignore npx mrm
    14. 提供されているFAQSセクションは、すでに包括的でよく書かれています。 変更は必要ありません。

    以上がGoogle' s zxライブラリを使用してノードでシェルスクリプトを書き込む方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート