Maison >interface Web >js tutoriel >Execa ou utilisation de child_process pour exécuter des commandes CLI par programme.

Execa ou utilisation de child_process pour exécuter des commandes CLI par programme.

Linda Hamilton
Linda Hamiltonoriginal
2024-12-01 00:17:12865parcourir

Dans cet article, nous analysons deux façons d'exécuter des commandes CLI par programme trouvées dans Shadcn/ui et CodeMirror.

Vous êtes-vous déjà demandé s'il était possible d'exécuter des commandes CLI par programme ? Nous allons voir comment Shadcn/ui utilise execa et comment CodeMirror utilise child_process pour exécuter la CLI par programme.

Utilisation de child_process dans CodeMirror

CodeMirror utilise une API Node.js appelée child_process.execFileSync. Lire la suite

function run(cmd, args, wd = root, { shell = false } = {}) {
  return child.execFileSync(cmd, args, {shell, cwd: wd, encoding: "utf8", stdio: ["ignore", "pipe", process.stderr]})
}

Juste pour fournir un peu plus de contexte, cette exécution est appelée dans une fonction appelée install dans le code source de CodeMirror.

Execa vs using child_process to execute CLI commands programmatically.

Consultez le fichier Lisez-moi de CodeMirror v6 pour comprendre à quoi sert cette installation.

L'une des premières étapes pour configurer l'environnement de développement pour CodeMirror consiste à exécuter la commande ci-dessous, ceci est mentionné dans le fichier Readme.md de CodeMirror.

node bin/cm.js install

l'installation est analysée à l'aide de process.argv

Execa vs using child_process to execute CLI commands programmatically.

Utilisation d'Execa dans Shadcn/ui

Execa exécute des commandes dans votre script, application ou bibliothèque. Contrairement aux shells, il est optimisé pour une utilisation programmatique. Construit sur le module principal child_process.

La commande add de Shadcn/ui s'avère être execa pour installer les packages

Execa vs using child_process to execute CLI commands programmatically.

Consultez ces résultats de recherche pour l'utilisation d'Execa dans le référentiel Shadcn/ui

Execa vs using child_process to execute CLI commands programmatically.

À propos de nous :

Chez Thinkthroo, nous étudions les grands projets open source et fournissons des guides architecturaux. Nous avons développé des composants réutilisables, construits avec tailwind, que vous pouvez utiliser dans votre projet. Nous proposons des services de développement Next.js, React et Node.

Prenez rendez-vous avec nous pour discuter de votre projet.

Execa vs using child_process to execute CLI commands programmatically.

Références

  1. https://www.npmjs.com/package/execa

  2. https://nodejs.org/api/child_process.html#child_processexecfilesyncfile-args-options

  3. https://nodejs.org/api/child_process.html#child_processexecfilefile-args-options-callback

  4. https://github.com/codemirror/dev/blob/main/bin/cm.js#L14

  5. https://github.com/codemirror/dev?tab=readme-ov-file#codemirror

  6. https://github.com/search?q=repo:shadcn-ui/ui execa&type=code

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn