>웹 프론트엔드 >JS 튜토리얼 >Google의 ZX 라이브러리를 사용하여 노드에 쉘 스크립트를 작성하는 방법

Google의 ZX 라이브러리를 사용하여 노드에 쉘 스크립트를 작성하는 방법

Lisa Kudrow
Lisa Kudrow원래의
2025-02-09 09:59:12975검색

이 기사는 Node.js 프로젝트 내에서 쉘 스크립팅을 간소화하기위한 강력한 도구 인 Google의 ZX 라이브러리를 살펴 봅니다. 우리는 새로운 node.js 프로젝트를 부트 스트랩하여 ZX의 기능을 보여주는 명령 줄 유틸리티를 구축 할 것입니다.

Google ZX의 핵심 장점 :

How to Write Shell Scripts in Node with Google's zx Library 친숙한 JavaScript 구문을 사용하여 node.js의 쉘 스크립팅을 단순화합니다 아동 프로세스 생성, stdout 및 stderr를 효율적으로 처리합니다 는 (명령 실행), , 와 같은 유용한 유틸리티를 제공하고 인기있는 라이브러리에 대한 액세스 (예 : , ,

, ). <.> 모범 사례 홍보 : ecmascript 모듈 및 로컬 종속성 관리 사용. typeScript 호환성 (작은 구성 조정 포함)

전통적인 쉘 스크립팅의 도전 : 전통적인 쉘 스크립팅 (bash, zsh)은 성가시킬 수 있습니다. 아동 프로세스 관리, 인수를 피하고 STDOUT/STDERR을 처리하면 복잡성이 추가됩니다. Bash는 내장 기능을 제공하지만 구문은 복잡한 논리 또는 사용자 입력 처리에 덜 직관적 일 수 있습니다. Node.js는 핵심 모듈과 JavaScript의 유연성을 제공하는 동안 수동 어린이 프로세스 관리가 필요하므로 간단합니다. Google의 ZX : 솔루션 :

ZX는 이러한 문제를 우아하게 해결합니다. 아동 프로세스 관리를 감싸고 I/O 처리를 간소화합니다 전제 조건 :
  • 기본 javaScript 및 node.js 지식 터미널 명령 친숙 함. node.js & gt; = v14.13.1.
  • 완전한 코드는 github에서 사용할 수 있습니다
  • ZX가 작동하는 방법 :
  • 핵심 함수는 $입니다. 예를 들면 : cd() question() 이것은 chalk를 실행하고 출력을 캡처합니다. ZX는 깨끗한 구문을 위해 태그 템플릿 리터럴을 사용합니다. 다른 유용한 기능으로는 디렉토리 변경의 경우 minimist 및 사용자 입력의 경우 fetch가 있습니다. 또한 fs-extra (컬러 출력) 및
  • (명령 줄 인수 구문 분석 용)와 같은 인기 라이브러리를 통합합니다.
  • zx와 함께 세계 :
  • <:> 프로젝트 만들기 : <:> zx를 설치하십시오 :

생성 :

실행 가능 :

run :

typeScript가있는 ZX : typecript는 a

(예 : )가 필요하고 iife에서 tsconfig.json를 랩핑해야합니다. "compilerOptions": {"target": "es2017", "module": "commonjs"} 프로젝트 부트 스트랩퍼 구축 : await 프로젝트 설정을 자동화하는 도구를 만들어 봅시다

    필수 모듈 가져 오기 :
<code class="language-javascript">import { $ } from "zx";

await $`ls`;</code>

오류 처리 기능 : 필수 프로그램을 확인하십시오 (

, , ) :

bootstrap-tool.mjs 핸들 인수 : 존재하는지 확인하고 유효한 디렉토리인지 확인하십시오. 글로벌 git 설정 (,

)을 점검하십시오 git 초기화 :
    git init
  1. (사용)를 생성하고 (를 사용) 모듈 시스템 ( 또는 )에 대한 프롬프트, . NPM 패키지를 프롬프트하고 설치합니다 (유효성 검사 포함) import { $, argv, cd, chalk, fs, question } from "zx"; import path from "path"; import which from "which";. 기본 readme.md. 를 생성합니다 git에 대한 변경을 커밋하십시오
  2. 이 포괄적 인 부트 스트랩은 프로젝트 초기화를 크게 간소화합니다. 추가 향상에는 자동 디렉토리 생성, 오픈 소스 프로젝트 기능 (라이센스, 기고자 계약) 및 Github 저장소 자동화가 포함될 수 있습니다.
  3. 자주 묻는 질문 (faqs) : function exitWithError(msg) { console.error(chalk.red(msg)); process.exit(1); } 제공된 FAQ 섹션은 이미 포괄적이고 잘 작성되었습니다. 변경이 필요하지 않습니다.

위 내용은 Google의 ZX 라이브러리를 사용하여 노드에 쉘 스크립트를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.