
Analyse approfondie de Npm
Description
Introduction au livre
Les secrets de l'écosystème JavaScript, de npm à Monorepo !
JavaScript est bien plus qu'un simple langage de programmation ; il a créé un vaste écosystème utilisé par les développeurs du monde entier.
Cependant, il n'est pas facile de comprendre correctement le fonctionnement de npm et de package.json, des différents outils de regroupement et systèmes de modules que nous utilisons quotidiennement, et même de l'environnement monorepo.
Ce livre fournit des connaissances pratiques essentielles en résolvant une à une les énigmes complexes de l'écosystème JavaScript.
« npm Deep Dive » ne se contente pas de lister les méthodes d'utilisation ; il explore en profondeur les principes de fonctionnement et les critères de sélection de chaque outil et concept.
Il organise systématiquement le cœur de l'écosystème JavaScript, y compris les principes de base de npm et du versionnage sémantique, les différences entre CommonJS et ESModule et comment les utiliser, une comparaison des derniers outils de regroupement tels que Webpack, Rollup et Vite et leurs applications pratiques, et même comment gérer des projets à grande échelle à l'aide de monorepos.
Pour les débutants, il permet de comprendre des concepts complexes étape par étape, tandis que pour les développeurs expérimentés, il permet de comprendre et d'utiliser JavaScript à un niveau plus approfondi grâce à des conseils et des stratégies immédiatement applicables en pratique.
Ce livre vous permettra d'explorer librement l'écosystème JavaScript, de créer un meilleur environnement de développement et d'acquérir des connaissances difficiles à appréhender par le biais du développement de services web classiques.
JavaScript est bien plus qu'un simple langage de programmation ; il a créé un vaste écosystème utilisé par les développeurs du monde entier.
Cependant, il n'est pas facile de comprendre correctement le fonctionnement de npm et de package.json, des différents outils de regroupement et systèmes de modules que nous utilisons quotidiennement, et même de l'environnement monorepo.
Ce livre fournit des connaissances pratiques essentielles en résolvant une à une les énigmes complexes de l'écosystème JavaScript.
« npm Deep Dive » ne se contente pas de lister les méthodes d'utilisation ; il explore en profondeur les principes de fonctionnement et les critères de sélection de chaque outil et concept.
Il organise systématiquement le cœur de l'écosystème JavaScript, y compris les principes de base de npm et du versionnage sémantique, les différences entre CommonJS et ESModule et comment les utiliser, une comparaison des derniers outils de regroupement tels que Webpack, Rollup et Vite et leurs applications pratiques, et même comment gérer des projets à grande échelle à l'aide de monorepos.
Pour les débutants, il permet de comprendre des concepts complexes étape par étape, tandis que pour les développeurs expérimentés, il permet de comprendre et d'utiliser JavaScript à un niveau plus approfondi grâce à des conseils et des stratégies immédiatement applicables en pratique.
Ce livre vous permettra d'explorer librement l'écosystème JavaScript, de créer un meilleur environnement de développement et d'acquérir des connaissances difficiles à appréhender par le biais du développement de services web classiques.
- Vous pouvez consulter un aperçu du contenu du livre.
Aperçu
indice
▣ Chapitre 1 : npm et le versionnage sémantique
1.1 Définition et historique de npm
__1.1.1 Historique et contexte de npm
__1.1.2 Fonctionnalités clés de npm
__1.1.3 Sites utiles liés à npm
__1.1.4 Résumé
1.2 Qu'est-ce qu'une version significative ?
1.2.1 Contexte et définition de l'émergence de la version significative
1.2.2 Spécification concrète de la version sémantique
__1.2.3 Grammaire de la version sémantique
__1.2.4 Version sémantique utilisée par Node.js et npm
__1.2.5 Résumé
1.3 Les aspects positifs et négatifs du versionnage sémantique et de l'écosystème npm
__1.3.1 left-pad : Que se passe-t-il lorsqu’un paquet utilitaire dont dépendent des dizaines de millions de paquets disparaît ?
__1.3.2 Tout : Vous dites que les paquets ne peuvent pas être supprimés s'ils sont des dépendances ? Et si tous les paquets JavaScript étaient des dépendances ?
__1.3.3 is-promise : Situation causée par une mise à jour de version mineure incorrecte
__1.3.4 colors.js et faker.js : La mise à jour prématurée de la version d’un composant ou d’un sous-composant peut être préjudiciable.
__1.3.5 Incident de flux d'événements : Quel est le niveau de sécurité des logiciels libres ?
__1.3.6 Éléments à prendre en compte lors de l'utilisation du versionnage sémantique et de npm
__1.3.7 Résumé
▣ Chapitre 2 : Exploration de package.json et npm
2.1 Examiner le fichier package.json
__2.1.1 package.json
__2.1.2 Champs clés du fichier package.json
__2.1.3 Création du fichier package.json
__2.1.4 Analyse de la configuration npm et du fichier .npmrc
__2.1.5 Résumé
2.2 Que sont les dépendances ?
Version __2.2.1 de npm et symboles spéciaux utilisés dans les versions
__2.2.2 dépendances
__2.2.3 Dépendances de développement
__2.2.4 Dépendances homologues
__2.2.5 peerDependenciesMeta
__2.2.6 Résumé
2.3 Principales commandes npm
__2.3.1 npm run
__2.3.2 npm install et npm ci
Mise à jour npm __2.3.3
__2.3.4 npm dedupe
__2.3.5 npm ls
__2.3.6 npm explain
Audit npm __2.3.7
__2.3.8 npm publier
__2.3.9 npm déprécie
__2.3.10 npm obsolète
__2.3.11 npm view
Résumé __2.3.12
2.4 Que se passe-t-il lorsque vous exécutez npm install ?
__2.4.1 Principes fondamentaux de l'analyse des arbres de dépendances @npmcli/arborist
__2.4.2 Paquet pour installer le paquet, paquet
__2.4.3 Examen des modules de nœud
__2.4.4 Résumé
2.5 Qu'est-ce que node_modules ?
__2.5.1 Le rôle des modules Node
__2.5.2 Structure des modules de nœud
__2.5.3 Liens symboliques
__2.5.4 Résumé
2.6 champ bin et npx
package CLI __2.6.1
__2.6.2 champ bin
__2.6.3 npx
__2.6.4 Résumé
▣ Chapitre 3 : yarn et pnpm, concurrents de npm
3.1 Problèmes et limitations de npm
__3.1.1 Dépendances fantômes
3.1.2 Charge d'E/S disque
__3.1.3 Les fichiers node_modules sont trop volumineux
3.1.4 Verrouiller les fichiers vulnérables à la modification
__3.1.5 Résumé
3.2 yarn : Un gestionnaire de paquets pour une gestion de paquets rapide et fiable.
__3.2.1 Introduction et histoire du fil
3.2.2 Fonctionnalités
__3.2.3 Résumé
3.3 pnpm : Un gestionnaire de paquets innovant en matière d’économie d’espace disque et de vitesse d’installation.
3.3.1 Introduction et historique de pnpm
3.3.2 Fonctionnalités
__3.3.3 Résumé
3.4 Comparaison de npm, yarn et pnpm
__3.4.1 Espace de travail
__3.4.2 Comparaison des commandes
__3.4.3 Test de référence
__3.4.4 Résumé
▣ Chapitre 4 : CommonJS et ESModule
4.1 Historique de la modularisation JavaScript
4.1.1 Contexte de la modularisation JavaScript
4.1.2 JavaScript avant la modularisation
__4.1.3 Plusieurs tentatives de modules JavaScript
4.1.4 Le système de modules JavaScript actuel
__4.1.5 Résumé
4.2 Qu'est-ce que CommonJS ?
4.2.1 Contexte de la naissance de CommonJS
__4.2.2 Spécification CommonJS
4.2.3 CommonJS dans Node.js
4.2.4 Génération du code source avec CommonJS
__4.2.5 Résumé
4.3 Qu'est-ce qu'ESModule ?
4.3.1 Contexte et introduction d'ESModule
__4.3.2 Fonctionnalités d'ESModule
__4.3.3 ESModule dans Node.js
__4.3.4 Résumé
4.4 Comment Node.js trouve-t-il les packages dans node_modules ?
__4.4.1 Algorithme d'interprétation du module
__4.4.2 Comment charger un module avec un spécificateur de nom de module
__4.4.3 Résumé
4.5 CommonJS vs. ESModule : Quelle est la bonne réponse ?
4.5.1 Pourquoi les packages open source prennent-ils en charge à la fois CommonJS et ESModule ?
4.5.2 Développement d'un package double prenant en charge à la fois CommonJS et ESModule
__4.5.3 Développement d'un package ESModule pur
__4.5.4 CommonJS et ESModule, quelle est la bonne réponse ?
__4.5.5 Résumé
▣ Chapitre 5 : Transpilage et polyfill
5.1 Babel, un outil qui facilite la transpilation
5.1.1 La nécessité de Babel
5.1.2 Fonctionnement de Babel
__5.1.3 Essai de Babel
__5.1.4 Résumé
5.2 Core-js, un outil facilitant le développement de polyfills
__5.2.1 Qu'est-ce que core-js ?
__5.2.2 Babel et core-js
__5.2.3 Résumé
5.3 Quels sont les meilleurs polyfills et transpileurs ?
5.3.1 Spécification de l'environnement pris en charge
__5.3.2 Résumé
5.4 Alternatives à Babel et à core-js
__5.4.1 Compilateur TypeScript
__5.4.2 SWC (Speedy Web Compiler)
__5.4.3 cales es
__5.4.4 polyfill.js
__5.4.5 Résumé
▣ Chapitre 6 : Exploration des outils de regroupement JavaScript
6.1 Qu’est-ce que le regroupement et pourquoi est-il nécessaire ?
6.1.1 Historique du regroupement
6.1.2 Le rôle du regroupement
__6.1.3 Résumé
6.2 Webpack, la norme pour les regroupements de services web
6.2.1 Introduction à Webpack et à ses principales fonctionnalités
6.2.2 Concepts de base et principes de fonctionnement de Webpack
6.2.3 Création d'un service Webpack simple
__6.2.4 Résumé
6.3 Rollup, le leader des offres groupées
6.3.1 Contexte et introduction du rollup
6.3.2 Concepts et fonctionnalités de base du rollup
__6.3.3 Résumé
6.4 Bit, le nouveau géant des outils intégrés
6.4.1 Contexte et introduction du rythme
6.4.2 Concepts de base et caractéristiques des bits
6.4.3 Champs clés requis pour la configuration
__6.4.4 Résumé
▣ Chapitre 7 : Créer votre propre package JavaScript
7.1 Création de votre propre package npm
7.1.1 Liste de contrôle pour le développement de packages
7.1.2 Paramètres de l'environnement du projet
7.1.3 Écriture du code proprement dit et du code de test
__7.1.4 Mise en place d'un environnement pour le regroupement et la transpilation
7.1.5 Écriture de code de test simple
__7.1.6 Création d'un pipeline CI à l'aide de GitHub Actions
__7.1.7 Déploiement à l'aide d'ensembles de modifications
__7.1.8 Résumé
7.2 Création de votre propre package CLI
7.2.1 Planification du package CLI à créer
7.2.2 Paramètres de l'environnement du projet
7.2.3 Écriture du code proprement dit
7.2.4 Vérifier les résultats
7.2.5 Utilisation après déploiement
__7.2.6 Packages utiles pour la création d'interfaces de ligne de commande
__7.2.7 Résumé
▣ Chapitre 8 : Gérer à la fois les services et les bibliothèques avec un monorepo
8.1 Monorepo et Turborepo
__8.1.1 Qu'est-ce qu'un monorepo ?
Espace de travail npm __8.1.2
8.1.3 Turborepo, un outil pour configurer les monorepos
__8.1.4 Résumé
8.2 Création de votre propre projet Monorepo
8.2.1 Introduction au système de conception
8.2.2 Configuration des espaces de travail pnpm et de turborepo
8.2.3 Mise en œuvre d'un package partagé
__8.2.4 Implémentation de @ndive/design-tokens
__8.2.5 @ndive/design-components implémentation
__8.2.6 Implémentation de @ndive/design-tracker
8.2.7 Rédiger une demande
__8.2.8 Vue d'ensemble du déploiement
__8.2.9 Résumé
▣ Chapitre 9 : Outils et conseils pour vous aider à développer des packages
9.1 Outils pour vous aider à développer des packages
__9.1.1 Une autre façon de télécharger un package JSR
__9.1.2 Un outil permettant d'exécuter simultanément des processus complexes de traitement par lots, t sup
__9.1.3 Fichier de configuration cosmiconfig standard
9.1.4 Tinybench, un outil d'analyse des performances
jscodeshift __9.1.5 facilite la migration du code
__9.1.6 Résumé
9.2 Conseils pour vous aider à développer des packages
__9.2.1 ESModule, obligatoire mais non optionnel
__9.2.2 Écriture correcte du fichier package.json
9.2.3 Application de la transpilation et du polyfill corrects
9.2.4 Ajoutez les dépendances avec précaution
9.2.5 Tests de code et tests d'évaluation des performances permettant de garantir la fiabilité du code
__9.2.6 Comment rédiger une documentation appropriée
__9.2.7 Résumé
1.1 Définition et historique de npm
__1.1.1 Historique et contexte de npm
__1.1.2 Fonctionnalités clés de npm
__1.1.3 Sites utiles liés à npm
__1.1.4 Résumé
1.2 Qu'est-ce qu'une version significative ?
1.2.1 Contexte et définition de l'émergence de la version significative
1.2.2 Spécification concrète de la version sémantique
__1.2.3 Grammaire de la version sémantique
__1.2.4 Version sémantique utilisée par Node.js et npm
__1.2.5 Résumé
1.3 Les aspects positifs et négatifs du versionnage sémantique et de l'écosystème npm
__1.3.1 left-pad : Que se passe-t-il lorsqu’un paquet utilitaire dont dépendent des dizaines de millions de paquets disparaît ?
__1.3.2 Tout : Vous dites que les paquets ne peuvent pas être supprimés s'ils sont des dépendances ? Et si tous les paquets JavaScript étaient des dépendances ?
__1.3.3 is-promise : Situation causée par une mise à jour de version mineure incorrecte
__1.3.4 colors.js et faker.js : La mise à jour prématurée de la version d’un composant ou d’un sous-composant peut être préjudiciable.
__1.3.5 Incident de flux d'événements : Quel est le niveau de sécurité des logiciels libres ?
__1.3.6 Éléments à prendre en compte lors de l'utilisation du versionnage sémantique et de npm
__1.3.7 Résumé
▣ Chapitre 2 : Exploration de package.json et npm
2.1 Examiner le fichier package.json
__2.1.1 package.json
__2.1.2 Champs clés du fichier package.json
__2.1.3 Création du fichier package.json
__2.1.4 Analyse de la configuration npm et du fichier .npmrc
__2.1.5 Résumé
2.2 Que sont les dépendances ?
Version __2.2.1 de npm et symboles spéciaux utilisés dans les versions
__2.2.2 dépendances
__2.2.3 Dépendances de développement
__2.2.4 Dépendances homologues
__2.2.5 peerDependenciesMeta
__2.2.6 Résumé
2.3 Principales commandes npm
__2.3.1 npm run
__2.3.2 npm install et npm ci
Mise à jour npm __2.3.3
__2.3.4 npm dedupe
__2.3.5 npm ls
__2.3.6 npm explain
Audit npm __2.3.7
__2.3.8 npm publier
__2.3.9 npm déprécie
__2.3.10 npm obsolète
__2.3.11 npm view
Résumé __2.3.12
2.4 Que se passe-t-il lorsque vous exécutez npm install ?
__2.4.1 Principes fondamentaux de l'analyse des arbres de dépendances @npmcli/arborist
__2.4.2 Paquet pour installer le paquet, paquet
__2.4.3 Examen des modules de nœud
__2.4.4 Résumé
2.5 Qu'est-ce que node_modules ?
__2.5.1 Le rôle des modules Node
__2.5.2 Structure des modules de nœud
__2.5.3 Liens symboliques
__2.5.4 Résumé
2.6 champ bin et npx
package CLI __2.6.1
__2.6.2 champ bin
__2.6.3 npx
__2.6.4 Résumé
▣ Chapitre 3 : yarn et pnpm, concurrents de npm
3.1 Problèmes et limitations de npm
__3.1.1 Dépendances fantômes
3.1.2 Charge d'E/S disque
__3.1.3 Les fichiers node_modules sont trop volumineux
3.1.4 Verrouiller les fichiers vulnérables à la modification
__3.1.5 Résumé
3.2 yarn : Un gestionnaire de paquets pour une gestion de paquets rapide et fiable.
__3.2.1 Introduction et histoire du fil
3.2.2 Fonctionnalités
__3.2.3 Résumé
3.3 pnpm : Un gestionnaire de paquets innovant en matière d’économie d’espace disque et de vitesse d’installation.
3.3.1 Introduction et historique de pnpm
3.3.2 Fonctionnalités
__3.3.3 Résumé
3.4 Comparaison de npm, yarn et pnpm
__3.4.1 Espace de travail
__3.4.2 Comparaison des commandes
__3.4.3 Test de référence
__3.4.4 Résumé
▣ Chapitre 4 : CommonJS et ESModule
4.1 Historique de la modularisation JavaScript
4.1.1 Contexte de la modularisation JavaScript
4.1.2 JavaScript avant la modularisation
__4.1.3 Plusieurs tentatives de modules JavaScript
4.1.4 Le système de modules JavaScript actuel
__4.1.5 Résumé
4.2 Qu'est-ce que CommonJS ?
4.2.1 Contexte de la naissance de CommonJS
__4.2.2 Spécification CommonJS
4.2.3 CommonJS dans Node.js
4.2.4 Génération du code source avec CommonJS
__4.2.5 Résumé
4.3 Qu'est-ce qu'ESModule ?
4.3.1 Contexte et introduction d'ESModule
__4.3.2 Fonctionnalités d'ESModule
__4.3.3 ESModule dans Node.js
__4.3.4 Résumé
4.4 Comment Node.js trouve-t-il les packages dans node_modules ?
__4.4.1 Algorithme d'interprétation du module
__4.4.2 Comment charger un module avec un spécificateur de nom de module
__4.4.3 Résumé
4.5 CommonJS vs. ESModule : Quelle est la bonne réponse ?
4.5.1 Pourquoi les packages open source prennent-ils en charge à la fois CommonJS et ESModule ?
4.5.2 Développement d'un package double prenant en charge à la fois CommonJS et ESModule
__4.5.3 Développement d'un package ESModule pur
__4.5.4 CommonJS et ESModule, quelle est la bonne réponse ?
__4.5.5 Résumé
▣ Chapitre 5 : Transpilage et polyfill
5.1 Babel, un outil qui facilite la transpilation
5.1.1 La nécessité de Babel
5.1.2 Fonctionnement de Babel
__5.1.3 Essai de Babel
__5.1.4 Résumé
5.2 Core-js, un outil facilitant le développement de polyfills
__5.2.1 Qu'est-ce que core-js ?
__5.2.2 Babel et core-js
__5.2.3 Résumé
5.3 Quels sont les meilleurs polyfills et transpileurs ?
5.3.1 Spécification de l'environnement pris en charge
__5.3.2 Résumé
5.4 Alternatives à Babel et à core-js
__5.4.1 Compilateur TypeScript
__5.4.2 SWC (Speedy Web Compiler)
__5.4.3 cales es
__5.4.4 polyfill.js
__5.4.5 Résumé
▣ Chapitre 6 : Exploration des outils de regroupement JavaScript
6.1 Qu’est-ce que le regroupement et pourquoi est-il nécessaire ?
6.1.1 Historique du regroupement
6.1.2 Le rôle du regroupement
__6.1.3 Résumé
6.2 Webpack, la norme pour les regroupements de services web
6.2.1 Introduction à Webpack et à ses principales fonctionnalités
6.2.2 Concepts de base et principes de fonctionnement de Webpack
6.2.3 Création d'un service Webpack simple
__6.2.4 Résumé
6.3 Rollup, le leader des offres groupées
6.3.1 Contexte et introduction du rollup
6.3.2 Concepts et fonctionnalités de base du rollup
__6.3.3 Résumé
6.4 Bit, le nouveau géant des outils intégrés
6.4.1 Contexte et introduction du rythme
6.4.2 Concepts de base et caractéristiques des bits
6.4.3 Champs clés requis pour la configuration
__6.4.4 Résumé
▣ Chapitre 7 : Créer votre propre package JavaScript
7.1 Création de votre propre package npm
7.1.1 Liste de contrôle pour le développement de packages
7.1.2 Paramètres de l'environnement du projet
7.1.3 Écriture du code proprement dit et du code de test
__7.1.4 Mise en place d'un environnement pour le regroupement et la transpilation
7.1.5 Écriture de code de test simple
__7.1.6 Création d'un pipeline CI à l'aide de GitHub Actions
__7.1.7 Déploiement à l'aide d'ensembles de modifications
__7.1.8 Résumé
7.2 Création de votre propre package CLI
7.2.1 Planification du package CLI à créer
7.2.2 Paramètres de l'environnement du projet
7.2.3 Écriture du code proprement dit
7.2.4 Vérifier les résultats
7.2.5 Utilisation après déploiement
__7.2.6 Packages utiles pour la création d'interfaces de ligne de commande
__7.2.7 Résumé
▣ Chapitre 8 : Gérer à la fois les services et les bibliothèques avec un monorepo
8.1 Monorepo et Turborepo
__8.1.1 Qu'est-ce qu'un monorepo ?
Espace de travail npm __8.1.2
8.1.3 Turborepo, un outil pour configurer les monorepos
__8.1.4 Résumé
8.2 Création de votre propre projet Monorepo
8.2.1 Introduction au système de conception
8.2.2 Configuration des espaces de travail pnpm et de turborepo
8.2.3 Mise en œuvre d'un package partagé
__8.2.4 Implémentation de @ndive/design-tokens
__8.2.5 @ndive/design-components implémentation
__8.2.6 Implémentation de @ndive/design-tracker
8.2.7 Rédiger une demande
__8.2.8 Vue d'ensemble du déploiement
__8.2.9 Résumé
▣ Chapitre 9 : Outils et conseils pour vous aider à développer des packages
9.1 Outils pour vous aider à développer des packages
__9.1.1 Une autre façon de télécharger un package JSR
__9.1.2 Un outil permettant d'exécuter simultanément des processus complexes de traitement par lots, t sup
__9.1.3 Fichier de configuration cosmiconfig standard
9.1.4 Tinybench, un outil d'analyse des performances
jscodeshift __9.1.5 facilite la migration du code
__9.1.6 Résumé
9.2 Conseils pour vous aider à développer des packages
__9.2.1 ESModule, obligatoire mais non optionnel
__9.2.2 Écriture correcte du fichier package.json
9.2.3 Application de la transpilation et du polyfill corrects
9.2.4 Ajoutez les dépendances avec précaution
9.2.5 Tests de code et tests d'évaluation des performances permettant de garantir la fiabilité du code
__9.2.6 Comment rédiger une documentation appropriée
__9.2.7 Résumé
Image détaillée

Avis de l'éditeur
★Ce que ce livre aborde★
◎ npm, node_modules et les principes du versionnage sémantique
◎ Historique et différences entre CommonJS et ESModule
◎ Comparaison et sélection des outils de regroupement Webpack, Rollup et Vite
◎ Transpileurs et polyfills : Comment utiliser Babel et Core-js
◎ Comment gérer efficacement des projets de grande envergure dans un environnement monorepo
◎ Comment créer votre propre package npm et outil CLI
Si vous souhaitez comprendre le passé, le présent et l'avenir de l'écosystème JavaScript, ce livre sera votre guide.
Réglez vos problèmes passés et devenez un développeur plus productif et professionnel !
◎ npm, node_modules et les principes du versionnage sémantique
◎ Historique et différences entre CommonJS et ESModule
◎ Comparaison et sélection des outils de regroupement Webpack, Rollup et Vite
◎ Transpileurs et polyfills : Comment utiliser Babel et Core-js
◎ Comment gérer efficacement des projets de grande envergure dans un environnement monorepo
◎ Comment créer votre propre package npm et outil CLI
Si vous souhaitez comprendre le passé, le présent et l'avenir de l'écosystème JavaScript, ce livre sera votre guide.
Réglez vos problèmes passés et devenez un développeur plus productif et professionnel !
SPÉCIFICATIONS DES PRODUITS
- Date d'émission : 12 juin 2025
- Nombre de pages, poids, dimensions : 1 012 pages | 188 × 240 × 41 mm
- ISBN13 : 9791158396077
Vous aimerez peut-être aussi
카테고리
Langue coréenne
Langue coréenne