この記事では、node.jsプロジェクト内でシェルスクリプトを合理化するための強力なツールであるGoogleのZXライブラリを調査します。 新しいnode.jsプロジェクトをブートストラップするためにコマンドラインユーティリティを構築し、ZXの機能を紹介します。
おなじみのJavaScript構文を使用して、node.jsでシェルスクリプトを簡素化します
チャイルドプロセスの作成、stdout、およびstderrを効率的に処理します。$
、cd()
、question()
)。 🎜>
chalk
ベストプラクティスを促進する:ECMAScriptモジュールとローカル依存管理管理の使用。
minimist
タイプスクリプトの互換性(マイナーな構成調整を使用)fetch
fs-extra
Googleのzx:a solution:
zxはこれらの問題をエレガントに解決します。 子どものプロセス管理をラップし、I/Oハンドリングを合理化します 前提条件:基本的なJavaScriptおよびnode.jsの知識。
端末コマンドの親しみやすさ。
node.js> = v14.13.1。
これはを実行し、出力をキャプチャします。 ZXは、クリーンな構文にタグ付きテンプレートリテラルを使用します。 その他の有用な機能には、ディレクトリを変更するおよびユーザー入力の場合は
に含まれます。 また、(色付きの出力用)や$
(コマンドライン引数の解析の場合)などの一般的なライブラリも統合します。
import { $ } from "zx"; await $`ls`;
ls
cd()
question()
プロジェクトの作成:chalk
minimist
をインストールします create
:mkdir zx-project && cd zx-project && npm init -y
npm install --save-dev zx
hello.mjs
#! /usr/bin/env node import { $ } from "zx"; $.verbose = false; // Suppress command echoing const output = (await $`ls`).stdout.trim(); // Trim extra newline console.log(output);
chmod u x hello.mjs
タイプスクリプトには、a tsconfig.json
(例えば、"compilerOptions": {"target": "es2017", "module": "commonjs"}
)が必要です。
await
import { $ } from "zx"; await $`ls`;
プロジェクトのセットアップを自動化するツール(
必要なモジュールをインポート:bootstrap-tool.mjs
import { $, argv, cd, chalk, fs, question } from "zx"; import path from "path"; import which from "which";
必要なプログラム(function exitWithError(msg) { console.error(chalk.red(msg)); process.exit(1); }
)を確認してください
git
node
npx
グローバルGIT設定(async function checkRequiredProgramsExist(programs) { ... }
、--directory
git initcd()
user.name
(user.email
を使用)、モジュールシステム(await $
。;
を更新します。
NPMパッケージのプロンプトとインストール(検証付き)。package.json
およびnpm init -y
。commonjs
。
module
基本的なreadme.md。package.json
を生成します
.gitignore
よくある質問(FAQ):npx gitignore
npx mrm
以上がGoogle' s zxライブラリを使用してノードでシェルスクリプトを書き込む方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。