Comment démarrer rapidement avec VUE3.0 : Aller à l'étude
1.1 Qu'est-ce que la modularisation ?
La modularisation fait référence au processus de division du système en plusieurs modules couche par couche de haut en bas lors de la résolution d'un problème complexe. Pour l'ensemble du système, les modules sont des unités qui peuvent être combinées, décomposées et remplacées.
La modularisation dans le domaine de la programmation consiste à suivre des règles fixes et à diviser un gros fichier en plusieurs petits modules indépendants et interdépendants.
Les avantages de diviser le code en modules :
Cela améliore la réutilisabilité du code,
améliore la maintenabilité du code
et permet le chargement à la demande
2.1 Classification des modules
dans Node.js Basé sur En fonction de. la source du module, les modules sont répartis en 3 grandes catégories, à savoir :
les modules intégrés (les modules intégrés sont officiellement fournis par Node.js, comme fs, path, http, etc.)
les modules personnalisés (chacun . js créé par l'utilisateur), sont tous des modules personnalisés)
Modules tiers (les modules développés par des tiers ne sont pas des modules intégrés officiellement fournis, ni des modules personnalisés créés par les utilisateurs et doivent être téléchargés avant utilisation)
2.2 Chargez des modules
à l'aide de la puissante méthode require(), vous pouvez charger les modules intégrés requis, les modules définis par l'utilisateur et les modules tiers à utiliser. Par exemple:
Remarque : lorsque vous utilisez la méthode require() pour charger d'autres modules, le code du module chargé sera exécuté ; le suffixe de fichier « .js » peut être omis lors du chargement d'un module personnalisé.
2.3 Portée du module dans Node.js
Qu'est-ce que la portée du module
? Semblable à la portée de la fonction, les variables, méthodes et autres membres définis dans un module personnalisé ne sont accessibles que dans le module actuel. Cette restriction d'accès au niveau du module est appelée portée du module.
L'avantage de la portée du module
évite le problème de pollution des variables globales (si deux fichiers js sont importés avec des balises de script et que la même variable est définie dans les deux fichiers, la première sera écrasée par la seconde)
2.4 Partage de la portée du module en externe Membre
1 . Objet module
Il y a un objet module dans chaque module personnalisé .js, qui stocke les informations relatives au module actuel. Il est imprimé comme suit :
2. Objet module.exports
Dans un module personnalisé, vous pouvez utiliser l'objet module.exports pour partager des membres au sein du module pour un usage externe.
Lorsque le monde extérieur utilise la méthode require() pour importer un module personnalisé, il obtient l'objet pointé par module.exports.
3. Points à noter lors du partage de membres :
Lors de l'utilisation de la méthode require() pour importer un module, le résultat de l'importation sera toujours basé sur l'objet pointé par module.exports.
4. Objet Exports
Le mot module.exports étant relativement compliqué à écrire, afin de simplifier le code de partage des membres en externe, Node fournit l'objet exports. Par défaut, exports et module.exports pointent vers le même objet. Le résultat final partagé est toujours basé sur l'objet pointé par module.exports.
5. Malentendus dans l'utilisation de exports et module.exports.
Rappelez-vous toujours que lorsque require() un module, vous obtiendrez toujours l'objet pointé par module.exports :
Compréhension personnelle : exports et module.exports pointent à l'origine vers le même objet. En montant simplement les données, il pointe toujours vers le même objet. Les données montées par les exportations peuvent également être obtenues par le module require. Si une partie attribue une valeur (pointant vers un autre objet, alors elle ne pointe pas vers le même objet et le module require obtient l'objet pointé par module.exports, donc une fois qu'une partie change le pointeur, le module require n'obtiendra pas la valeur des exportations.)
Remarque : Afin d'éviter toute confusion, il est recommandé de ne pas utiliser exports et module.exports en même temps dans le même module.
2.5 Spécification de modularité dans Node.js Node.js suit la modularité CommonJS. La spécification CommonJS stipule les caractéristiques des modules et la manière dont chaque module interagit les uns avec les autres.
CommonJS stipule :
(1) À l'intérieur de chaque module, la variable module représente le module actuel.
(2) La variable module est un objet et son attribut exports (c'est-à-dire module.exports) est l'interface externe.
(3) Le chargement d'un module charge en fait l'attribut module.exports du module. La méthode require() est utilisée pour charger les modules.
3.1 Packages
1. Qu'est-ce qu'un package ?
Les modules tiers dans Node.js sont également appelés packages.
Tout comme ordinateurs et ordinateurs font référence à la même chose, les modules et packages tiers font référence au même concept, mais avec des noms différents.
2. La source du package
est différente des modules intégrés et des modules personnalisés dans Node.js. Le package est développé par une personne ou une équipe tierce et est gratuit pour tout le monde.
Remarque : Les packages de Node.js sont tous gratuits et open source et peuvent être téléchargés et utilisés gratuitement sans payer.
3. Pourquoi des packages sont-ils nécessaires ?
Étant donné que les modules intégrés de Node.js ne fournissent que quelques API de bas niveau, l'efficacité du développement de projets basés sur les modules intégrés est très faible.
Le package est encapsulé sur la base de modules intégrés, fournissant une API plus avancée et plus pratique, ce qui améliore considérablement l'efficacité du développement.
La relation entre les packages et les modules intégrés est similaire à la relation entre jQuery et l'API du navigateur intégré.
4. Où télécharger des packages ?
Il existe une société informatique à l'étranger appelée npm, Inc. Cette société possède un site Web très célèbre : www.npmjs.com/, qui est la plus grande plateforme de partage de packages au monde. Vous pouvez le télécharger à partir de celui-ci. site Web Recherchez le forfait dont vous avez besoin, à condition d'avoir suffisamment de patience !
Jusqu'à présent, plus de 11 millions de développeurs dans le monde ont développé et partagé plus de 1,2 million de packages pour notre usage via cette plateforme de partage de packages. npm, Inc. fournit un serveur sur Registry.npmjs.org/ pour partager tous les packages en externe. Nous pouvons télécharger les packages dont nous avons besoin à partir de ce serveur.
Remarque :
recherchez le package dont vous avez besoin sur le site Web www.npmjs.com/
et téléchargez le package dont vous avez besoin à partir du serveur Registry.npmjs.org/
5. Comment télécharger le package
npm, Inc. La société fournit un outil de gestion de packages , nous pouvons utiliser cet outil de gestion de packages pour télécharger les packages requis depuis le serveur Registry.npmjs.org/ pour une utilisation locale.
Le nom de cet outil de gestion de packages est Node Package Manager (appelé outil de gestion de packages npm). Cet outil de gestion de packages est installé sur l'ordinateur de l'utilisateur avec le package d'installation Node.js.
Vous pouvez exécuter la commande npm -v dans le terminal pour vérifier le numéro de version de l'outil de gestion de packages npm installé sur votre ordinateur :
3.2 Première expérience avec npm
1. Commande pour installer des packages dans le projet
Si vous souhaitez installer un package avec un nom spécifié dans le projet, vous devez exécuter la commande suivante :
npm install Le nom complet du package
La commande d'empaquetage ci-dessus peut être abrégé au format suivant :
npm i Le nom complet du package
2. Quels fichiers supplémentaires sont ajoutés après l'installation initiale du package ?
Une fois l'installation initiale du package terminée, il y aura un dossier supplémentaire appelé node_modules et un fichier de configuration package- lock.json sous le dossier du projet.
Parmi eux : le dossier node_modules est utilisé pour stocker tous les packages qui ont été installés dans le projet. Lorsque require() importe un package tiers, il recherche et charge le package à partir de ce répertoire.
Le fichier de configuration package-lock.json est utilisé pour enregistrer les informations de téléchargement de chaque package dans le répertoire node_modules, telles que le nom du package, le numéro de version, l'adresse de téléchargement, etc.
Remarque : les programmeurs ne doivent modifier manuellement aucun code dans les fichiers node_modules ou package-lock.json, l'outil de gestion de packages npm les maintiendra automatiquement.
3. Installez la version spécifiée du package.
Par défaut, lorsque vous utilisez la commande npm install pour installer un package, la dernière version du package sera automatiquement installée. Si vous devez installer un package d'une version spécifiée, vous pouvez spécifier la version spécifique via le symbole @ après le nom du package, par exemple :
npm i [email protected]
4. La spécification sémantique de la version du package
Le numéro de version de le package est en "décimal pointé". Il est défini sous la forme d'un total de trois chiffres, par exemple 2.24.0.
La signification de chaque chiffre est la suivante :
1er chiffre : version majeure
2ème chiffre : version fonctionnelle
3ème chiffre : bug fix version
numéro de version Règles de promotion : Tant que le numéro de version précédent augmente, le numéro de version suivant reviendra à zéro.
3.3 Fichier de configuration de gestion des packages
npm stipule qu'un fichier de configuration de gestion des packages appelé package.json doit être fourni dans le répertoire racine du projet. Utilisé pour enregistrer certaines informations de configuration liées au projet. Par exemple :
nom du projet, numéro de version, description, etc.
Quels packages sont utilisés dans le projet,
quels packages sont utilisés uniquement lors du développement,
quels packages sont nécessaires lors du développement et du déploiement
Problèmes rencontrés
dans la collaboration multi-personnes
: La taille de Les packages tiers sont trop volumineux, ce qui rend difficile pour les membres de l'équipe de partager le code source du projet.Solution : supprimez node_modules lors du partage.
2. Comment enregistrer les packages installés dans le projet
. Dans le répertoire racine du projet, créez un fichier de configuration appelé package.json, qui peut être utilisé pour enregistrer les packages installés dans le projet. Cela facilite le partage du code source du projet entre les membres de l'équipe après la suppression du répertoire node_modules.
Remarque : lors du développement futur du projet, assurez-vous d'ajouter le dossier node_modules au fichier ignorer .gitignore.
3. Créez rapidement package.json.
L'outil de gestion de packages npm fournit une commande de raccourci pour créer rapidement le fichier de configuration de gestion de packages package.json dans le répertoire où la commande est exécutée :
npm init -y
Remarque :
(1) La commande ci-dessus est ne peut être exécuté avec succès que dans le répertoire anglais ! Par conséquent, le nom du dossier du projet doit être nommé en anglais et non en chinois, et il ne doit y avoir aucun espace.
(2) Lors de l'exécution de la commande npm install pour installer un package, l'outil de gestion de packages npm enregistrera automatiquement le nom et le numéro de version du package dans package.json.
4. Nœud Dépendances
Dans le fichier package.json, il existe un nœud Dépendances, spécialement utilisé pour enregistrer les packages que vous avez installés à l'aide de la commande npm install.
5. Installez tous les packages en même temps.
Lorsqu'un projet avec node_modules est supprimé, nous devons télécharger tous les packages dans le projet avant de pouvoir exécuter le projet. Sinon, une erreur similaire à la suivante sera signalée :
Vous pouvez exécuter la commande npm install (ou npm i) pour installer tous les packages dépendants en même temps :
6. Pour désinstaller un package
, vous pouvez exécuter la commande npm uninstall pour désinstaller le package spécifié :
npm uninstall spécifique nom du package
Remarque : Une fois la commande npm uninstall exécutée avec succès, le package désinstallé sera automatiquement supprimé des dépendances de package.json. . Il n'existe pas de raccourci pour la désinstallation.
7. Nœud devDependencies.
Si certains packages ne seront utilisés que pendant la phase de développement du projet et ne seront pas utilisés après la mise en ligne du projet, il est recommandé d'enregistrer ces packages dans le nœud devDependencies.
En conséquence, si certains packages doivent être utilisés après le développement et le lancement du projet, il est recommandé d'enregistrer ces packages dans le nœud des dépendances.
Vous pouvez utiliser la commande suivante pour enregistrer le package dans le nœud devDependencies :
3.4 Résoudre le problème de la vitesse de téléchargement lente des packages
1. Pourquoi la vitesse de téléchargement des packages est-elle lente
lorsque vous utilisez npm pour télécharger des packages, il télécharge par défaut à partir du serveur Registry.npmjs.org/ à l'étranger, donc la vitesse de téléchargement des packages sera très lente ? .
2. Serveur miroir Taobao NPM
Taobao a construit un serveur en Chine pour synchroniser les packages des serveurs officiels étrangers avec les serveurs nationaux, puis fournir des services de distribution de packages en Chine. Cela améliore considérablement la vitesse de téléchargement des packages.
Extension : La mise en miroir est une forme de stockage de fichiers. Les données sur un disque ont une copie identique sur un autre disque, qui est un miroir.
3. Changez la source miroir du package de npm
La source miroir du package fait référence à l'adresse du serveur du package.
4. nrm
Afin de changer plus facilement la source de l'image du package, nous pouvons installer l'outil nrm et utiliser la commande de terminal fournie par nrm pour afficher et changer rapidement la source de l'image du package.
3.5 Classification des packages
Les packages téléchargés à l'aide de l'outil de gestion de packages npm sont divisés en deux catégories, à savoir :
package de projet
package global
1. Package de projet
. Les packages installés dans le répertoire node_modules du projet sont tous des packages de projet.
Les packages de projet sont divisés en deux catégories, à savoir :
les packages de dépendances de développement (packages enregistrés dans le nœud devDependencies, qui ne sont utilisés que pendant le développement)
les packages de dépendances de base (packages enregistrés dans le nœud de dépendances, qui sont utilisés pendant le développement et le projet). utilisé après être allé en ligne)
2. Package global Lors de l'exécution de la commande npm install, si le paramètre -g est fourni, le package sera installé en tant que package global.
Le package global sera installé dans le répertoire C:Usersuser directoryAppDataRoamingnpmnode_modules.
Remarque :
(1) Seuls les packages d'outils doivent être installés globalement. Parce qu'ils fournissent des commandes de terminal utiles.
(2) Pour déterminer si un package doit être installé globalement avant de pouvoir être utilisé, vous pouvez vous référer aux instructions d'utilisation officielles.
3. i5ting_toc
i5ting_toc est un petit outil qui peut convertir des documents md en pages html. Les étapes à utiliser sont les suivantes :
3.6 Structure standardisée des packages
Après avoir compris le concept des packages et comment télécharger et utiliser les packages, examinons de plus près la structure interne des packages.
Un package standardisé doit répondre aux trois exigences suivantes :
(1) Le package doit exister dans un répertoire distinct
(2) Le répertoire de niveau supérieur du package doit contenir le fichier de configuration de gestion des packages package.json
(3) package.json doit contenir trois attributs : name, version et main, qui représentent respectivement le nom du package, le numéro de version et l'entrée du package.
Remarque : Les trois exigences ci-dessus correspondent au format auquel une structure de package standardisée doit se conformer. Pour plus de contraintes, vous pouvez vous référer à l'URL suivante : https://yarnpkg.com/zh-Hans/docs/package-json
3.7 Développez votre. propre package
1. Initialisez la structure de base du package
(1) Créez un nouveau dossier itheima-tools comme répertoire racine du package
(2) Dans le dossier itheima-tools, créez les trois fichiers suivants :
package.json (gestion des packages fichier de configuration)
index.js (fichier d'entrée du package)
README.md (document de description du package)
2. Initialiser package.json
Remarque : nom - utilisé pour indiquer le nom de l'application ou du progiciel ; version - indique la version actuelle ; main - définit le point d'entrée de l'application ; la description est une brève description de l'application/du progiciel ; cet attribut contient ; Tableau de mots-clés liés à la fonction du progiciel (aide à parcourir le site Web officiel du nœud pour trouver la licence du progiciel – spécifie la licence du progiciel) ;
3. Rédigez la documentation du package.
Le fichier README.md dans le répertoire racine du package est la documentation d'utilisation du package. Grâce à lui, nous pouvons rédiger à l'avance les instructions d'utilisation du package au format markdown pour la commodité de l'utilisateur.
Il n'y a aucune exigence obligatoire quant au contenu qui doit être écrit dans le fichier README tant que la fonction, l'utilisation, les précautions, etc. du package peuvent être clairement décrites.
3.8 Package de version
1. Enregistrez le compte npm
(1) Visitez le site Web www.npmjs.com/, cliquez sur le bouton d'inscription pour accéder à l'interface utilisateur d'enregistrement
(2) Remplissez les informations relatives au compte : nom complet, e-mail public, nom d'utilisateur, Mot de passe
(3) Cliquez sur le bouton Créer un compte pour créer un compte
(4) Connectez-vous à votre adresse e-mail et cliquez sur le lien de vérification pour vérifier le compte
2. Connectez-vous au compte npm
Une fois l'enregistrement du compte npm terminé, vous. peut exécuter la commande de connexion npm dans le terminal et saisir le nom d'utilisateur et le mot de passe (mot de passe). Il est masqué et ne peut pas être vu. Entrez simplement la clé correcte (Entrée), l'adresse e-mail et le code OTP envoyé à l'adresse e-mail, puis. vous pouvez vous connecter avec succès.
Remarque : Avant d'exécuter la commande npm login, vous devez d'abord changer l'adresse du serveur du package sur le serveur officiel de npm. (Si vous utilisiez le serveur taobao auparavant, vous devez passer au serveur officiel npm) Sinon, la publication du package échouera !
3. Publiez le package sur npm
.
Après avoir basculé le terminal vers le répertoire racine du package, exécutez la commande npm submit pour publier le package sur npm (remarque : les noms des packages ne peuvent pas être les mêmes. Vous pouvez accéder au site officiel pour vérifiez s'il existe des packages portant le même nom).
4. Supprimez le package publié.
Exécutez la commande npm unpublish package name --force pour supprimer le package publié de npm.
Remarque :
(1) La commande npm unpublish ne peut supprimer que les packages publiés dans les 72 heures
(2) Les packages supprimés par npm unpublish ne peuvent pas être republiés dans les 24 heures
(3) Soyez prudent lorsque vous publiez des packages et essayez de ne pas les publier. sur le package npm Insignifiant !
4.1 Prioriser le chargement à partir du cache
Les modules seront mis en cache après le premier chargement. Cela signifie également qu'appeler require() plusieurs fois n'entraînera pas l'exécution multiple du code du module.
Remarque : Qu'il s'agisse de modules intégrés, de modules définis par l'utilisateur ou de modules tiers, ils seront d'abord chargés à partir du cache, améliorant ainsi l'efficacité du chargement des modules.
4.2 Mécanisme de chargement des modules intégrés
Les modules intégrés sont des modules officiellement fournis par Node.js. Les modules intégrés ont la priorité de chargement la plus élevée.
Par exemple : require('fs') renvoie toujours le module fs intégré, même s'il existe un package du même nom dans le répertoire node_modules, il est également appelé fs.
4.3 Mécanisme de chargement d'un module personnalisé
Lorsque vous utilisez require() pour charger un module personnalisé, vous devez spécifier un identifiant de chemin commençant par ./ ou ../. Lors du chargement d'un module personnalisé, si aucun identifiant de chemin tel que ./ ou ../ n'est spécifié, le nœud le chargera en tant que module intégré ou module tiers.
Dans le même temps, lors de l'utilisation de require() pour importer un module personnalisé, si l'extension de fichier est omise, Node.js essaiera de charger les fichiers suivants dans l'ordre :
(1) Charger selon le nom exact du fichier
(2) Achèvement Extension .js à charger
(3) Complétez l'extension .json à charger
(4) Complétez l'extension .node à charger
(5) Le chargement échoue, le terminal signale une erreur
4.4 Si le mécanisme de chargement des modules tiers
est passé à require () Si l'identifiant du module n'est pas un module intégré et ne commence pas par './' ou '../', Node.js tentera de charger le module tiers depuis le dossier /node_modules, en commençant par le répertoire parent du module actuel.
Si le module tiers correspondant n'est pas trouvé, il est déplacé vers le répertoire parent un niveau au-dessus et chargé jusqu'au répertoire racine du système de fichiers.
Par exemple, en supposant que require('tools') est appelé dans le fichier 'C:Usersitheimaprojectfoo.js', Node.js effectuera la recherche dans l'ordre suivant :
(1) C:Usersitheima projet node_modulestools
(2) C:Usersitheimanode_modulestools
(3) C:Usersnode_modulestools
(4) C:node_modulestools
4.5 Répertoire en tant que module
Lors du passage du répertoire en tant que module identifiant, lors du chargement de require(), il existe trois méthodes de chargement :
(1) Recherchez un fichier appelé package.json dans le répertoire en cours de chargement et recherchez l'attribut principal, qui sert de point d'entrée pour require() à charger
( 2) Si dans le répertoire S'il n'y a pas de fichier package.json, ou si l'entrée principale n'existe pas ou ne peut pas être analysée, Node.js essaiera de charger le fichier index.js dans le répertoire.
(3) Si les deux étapes ci-dessus échouent, Node.js imprimera un message d'erreur dans le terminal, signalant le module manquant : Erreur : Impossible de trouver le module 'xxx'.
Cet article est reproduit à partir de : https://juejin.cn/post /7083445004240158757