Maison interface Web js tutoriel Explication détaillée de l'utilisation de Node.js pour écrire des instructions de génération multiplateforme

Explication détaillée de l'utilisation de Node.js pour écrire des instructions de génération multiplateforme

Feb 15, 2017 pm 05:25 PM

La chose la plus puissante à propos de Node.js est qu'il est « multiplateforme ». Avec un peu de soin lors du codage, votre code fonctionnera sur les plates-formes Windows, Linux et OSX. L'article suivant explique principalement comment utiliser Node.js pour écrire des déclarations d'apparition multiplateformes. Les amis dans le besoin peuvent s'y référer.

Préface

Node.js est multiplateforme, ce qui signifie qu'il peut fonctionner sur les plateformes Windows, OSX et Linux. De nombreux développeurs Node.js développent sur OSX puis déploient le code sur des serveurs Linux. Étant donné qu'OSX et Linux sont basés sur Unix, ils ont beaucoup en commun. Windows est également une plate-forme officiellement prise en charge pour Node.js. Tant que vous écrivez le code correctement, vous pouvez l'exécuter sur différentes plates-formes sans aucune pression.

Il existe une fonction spawn sous le module child_process de Node.js, qui peut être utilisée pour appeler des commandes sur le système. Par exemple, sous Linux, macOS et d'autres systèmes, nous pouvons exécuter

const spawn = require('child_process').spawn;

spawn('npm', {
 stdio: 'inherit'
});
Copier après la connexion

pour appeler la commande npm.

Cependant, la même instruction signalera une erreur lors de son exécution sous Windows.

Error: spawn npm ENOENT
 at exports._errnoException (util.js:855:11)
 at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)
 at onErrorNT (internal/child_process.js:344:16)
 at nextTickCallbackWith2Args (node.js:455:9)
 at process._tickCallback (node.js:369:17)
 at Function.Module.runMain (module.js:432:11)
 at startup (node.js:141:18)
 at node.js:980:3
Copier après la connexion

Parce que sous Windows, lorsque nous exécutons npm, nous exécutons en fait le lot npm.cmd, et sous Windows, le traitement par lots .cmd , .bat ne peut pas être exécuté indépendamment de l’interpréteur cmd.exe.

Par conséquent, nous devons appeler explicitement cmd

spawn('cmd', ['/c', 'npm'], {
 stdio: 'inherit'
});
Copier après la connexion

ou utiliser lors de l'appel de la fonction spawn, définissez l'option shell sur true pour Appelez implicitement cmd (cette option a été ajoutée à partir de la version Node.js v6)

spawn('npm', {
 stdio: 'inherit',
 shell: true
});
Copier après la connexion

De plus, bien qu'il ne soit pas nécessaire de la définir sous Linux, Option Shell macOS et autres systèmes, la commande peut être exécutée normalement ; définir Shell sur true n'entravera pas l'exécution de la commande, mais générera un processus shell inutile supplémentaire, affectant les performances.

Par conséquent, si vous souhaitez écrire une commande d'apparition multiplateforme sans ajouter de surcharge supplémentaire, vous pouvez l'écrire comme ceci

const process = require('process');
const { spawn } = require('child_process');

spawn('npm', {
 stdio: 'inherit',
 // 仅在当前运行环境为 Windows 时,才使用 shell
 shell: process.platform === 'win32'
});
Copier après la connexion

Module tiers cross-spawn


Concernant la méthode d'écriture multiplateforme de la fonction spawn, en plus d'effectuer le traitement lors de l'écriture du code vous-même, il existe également des modules tiers qui encapsulent le détails pertinents, tels que le cross-spawn.

En utilisant ce module, lorsque vous appelez la fonction spawn, vous pouvez automatiquement décider de générer ou non un shell pour exécuter la commande donnée en fonction de la plate-forme en cours d'exécution.

De plus, il peut également

  • prendre en charge les versions Node.js inférieures à la v6 (l'utilisation de l'option shell nécessite au moins Node.js v6

  • Prise en charge multiplateforme de shebang
  • Échapper plus facilement aux caractères dans les commandes et les paramètres.

  • Installation

npm install cross-spawn
Copier après la connexion

Utilisation

const spawn = require('cross-spawn');

spawn('npm', {
 stdio: 'inherit'
});
Copier après la connexion


Pour des explications plus détaillées sur l'utilisation de Node.js pour écrire des instructions de spawn multiplateformes, veuillez faire attention au site Web PHP chinois !

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Remplacer les caractères de chaîne en javascript Remplacer les caractères de chaîne en javascript Mar 11, 2025 am 12:07 AM

Explication détaillée de la méthode de remplacement de la chaîne JavaScript et de la FAQ Cet article explorera deux façons de remplacer les caractères de chaîne dans JavaScript: le code JavaScript interne et le HTML interne pour les pages Web. Remplacer la chaîne dans le code JavaScript Le moyen le plus direct consiste à utiliser la méthode Remplace (): str = str.replace ("trouver", "remplacer"); Cette méthode remplace uniquement la première correspondance. Pour remplacer toutes les correspondances, utilisez une expression régulière et ajoutez le drapeau global G: str = str.replace (/ fi

Comment créer et publier mes propres bibliothèques JavaScript? Comment créer et publier mes propres bibliothèques JavaScript? Mar 18, 2025 pm 03:12 PM

L'article discute de la création, de la publication et du maintien des bibliothèques JavaScript, en se concentrant sur la planification, le développement, les tests, la documentation et les stratégies de promotion.

Comment optimiser le code JavaScript pour les performances dans le navigateur? Comment optimiser le code JavaScript pour les performances dans le navigateur? Mar 18, 2025 pm 03:14 PM

L'article traite des stratégies pour optimiser les performances JavaScript dans les navigateurs, en nous concentrant sur la réduction du temps d'exécution et la minimisation de l'impact sur la vitesse de chargement de la page.

Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Apr 04, 2025 pm 02:42 PM

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur? Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur? Mar 18, 2025 pm 03:16 PM

L'article traite du débogage efficace de JavaScript à l'aide d'outils de développeur de navigateur, de se concentrer sur la définition des points d'arrêt, de l'utilisation de la console et d'analyser les performances.

10 façons d'augmenter instantanément vos performances jQuerres 10 façons d'augmenter instantanément vos performances jQuerres Mar 11, 2025 am 12:15 AM

Cet article décrit dix étapes simples pour augmenter considérablement les performances de votre script. Ces techniques sont simples et applicables à tous les niveaux de compétence. Restez à jour: utilisez un gestionnaire de packages comme NPM avec un bundler comme Vite pour vous assurer

Utilisation du passeport avec séquelle et mysql Utilisation du passeport avec séquelle et mysql Mar 11, 2025 am 11:04 AM

Sequelize est un ORM Node.js basé sur les promesses. Il peut être utilisé avec PostgreSQL, MySQL, MARIADB, SQLITE et MSSQL. Dans ce tutoriel, nous implémenterons l'authentification pour les utilisateurs d'une application Web. Et nous utiliserons Passport, l'authentification populaire Middlew

Comment construire un simple curseur jQuery Comment construire un simple curseur jQuery Mar 11, 2025 am 12:19 AM

Cet article vous guidera pour créer un carrousel d'image simple à l'aide de la bibliothèque JQuery. Nous utiliserons la bibliothèque BXSLider, qui est construite sur jQuery et offre de nombreuses options de configuration pour configurer le carrousel. De nos jours, Picture Carrousel est devenue une fonctionnalité incontournable sur le site Web - une image vaut mieux que mille mots! Après avoir décidé d'utiliser le carrousel d'image, la question suivante est de savoir comment la créer. Tout d'abord, vous devez collecter des images de haute qualité et haute résolution. Ensuite, vous devez créer un carrousel d'image en utilisant HTML et un code JavaScript. Il existe de nombreuses bibliothèques sur le Web qui peuvent vous aider à créer des carrousels de différentes manières. Nous utiliserons la bibliothèque BXSLider open source. La bibliothèque Bxslider prend en charge la conception réactive, de sorte que le carrousel construit avec cette bibliothèque peut être adapté à n'importe quel

See all articles