Cómo comenzar rápidamente con VUE3.0: Ir al estudio
1.1 ¿Qué es la modularización?
La modularización se refiere al proceso de dividir el sistema en varios módulos capa por capa de arriba a abajo al resolver un problema complejo. Para todo el sistema, los módulos son unidades que se pueden combinar, descomponer y reemplazar.
La modularización en el campo de la programación consiste en seguir reglas fijas y dividir un archivo grande en múltiples módulos pequeños que son independientes e interdependientes.
Los beneficios de dividir el código en módulos:
mejora la reutilización del código,
mejora la capacidad de mantenimiento del código
y permite la carga bajo demanda.
2.1 Clasificación de módulos
en Node.js según Dependiendo de. Según la fuente del módulo, los módulos se dividen en 3 categorías principales, a saber:
módulos integrados (los módulos integrados los proporciona oficialmente Node.js, como fs, ruta, http, etc.)
módulos personalizados (cada uno . js creado por el usuario), son todos módulos personalizados)
Módulos de terceros (los módulos desarrollados por terceros no son módulos integrados proporcionados oficialmente, ni son módulos personalizados creados por los usuarios, y deben descargarse antes de su uso)
2.2 Cargue módulos
utilizando el potente método require(), puede cargar los módulos integrados necesarios, los módulos definidos por el usuario y los módulos de terceros para su uso. Por ejemplo:
Nota: Cuando se utiliza el método require() para cargar otros módulos, se ejecutará el código del módulo cargado; el sufijo del archivo '.js' se puede omitir al cargar un módulo personalizado.
2.3 Alcance del módulo en Node.js
¿Qué es el alcance del módulo
? Similar al alcance de la función, solo se puede acceder a las variables, métodos y otros miembros definidos en un módulo personalizado dentro del módulo actual. Esta restricción de acceso a nivel de módulo se llama alcance del módulo.
El beneficio del alcance del módulo
previene el problema de la contaminación de variables globales (si se importan dos archivos js con etiquetas de script y se define la misma variable en ambos archivos, el primero será sobrescrito por el último)
2.4 Compartir el alcance del módulo externamente Miembro
1 Objeto de módulo
Hay un objeto de módulo en cada módulo personalizado .js, que almacena información relacionada con el módulo actual. Se imprime de la siguiente manera:
2. Objeto module.exports
En un módulo personalizado, puede utilizar el objeto module.exports para compartir miembros dentro del módulo para uso externo.
Cuando el mundo exterior usa el método require() para importar un módulo personalizado, lo que obtiene es el objeto al que apunta module.exports.
3. Puntos a tener en cuenta al compartir miembros:
cuando se utiliza el método require() para importar un módulo, el resultado de la importación siempre se basará en el objeto señalado por module.exports.
4. Objeto de exportación
Dado que la palabra module.exports es relativamente complicada de escribir, para simplificar el código para compartir miembros externamente, Node proporciona el objeto de exportación. De forma predeterminada, las exportaciones y module.exports apuntan al mismo objeto. El resultado final compartido todavía se basa en el objeto señalado por module.exports.
5. Malentendidos en el uso de exportaciones y module.exports.
Recuerde siempre que cuando require() un módulo, siempre obtendrá el objeto al que apunta module.exports:
Comprensión personal: las exportaciones y module.exports originalmente apuntan al mismo objeto. Con solo montar los datos, todavía apunta al mismo objeto. Los datos montados mediante exportaciones también se pueden obtener mediante el módulo requerido. Si una de las partes asigna un valor (apuntando a otro objeto, entonces no apuntan al mismo objeto, y el módulo require obtiene el objeto señalado por module.exports, por lo que una vez que una parte cambia el puntero, el módulo require no obtendrá el valor de las exportaciones.)
Nota: Para evitar confusiones, se recomienda no utilizar exports y module.exports al mismo tiempo en el mismo módulo.
2.5 Especificación de modularidad en Node.js Node.js sigue la modularidad de CommonJS. La especificación CommonJS estipula las características de los módulos y cómo cada módulo interactúa entre sí.
CommonJS estipula:
(1) Dentro de cada módulo, la variable del módulo representa el módulo actual.
(2) La variable del módulo es un objeto y su atributo de exportación (es decir, module.exports) es la interfaz externa.
(3) Al cargar un módulo, en realidad se carga el atributo module.exports del módulo. El método require() se utiliza para cargar módulos.
3.1 Paquetes
1. ¿Qué es un paquete?
Los módulos de terceros en Node.js también se denominan paquetes.
Así como computadoras y ordenadores hacen referencia a lo mismo, los módulos y paquetes de terceros hacen referencia al mismo concepto, pero con nombres diferentes.
2. El código fuente del paquete
es diferente de los módulos integrados y los módulos personalizados en Node.js. El paquete es desarrollado por un individuo o equipo externo y su uso es gratuito para todos.
Nota: Todos los paquetes de Node.js son gratuitos y de código abierto y se pueden descargar y utilizar de forma gratuita sin pagar.
3. ¿Por qué se necesitan los paquetes?
Debido a que los módulos integrados de Node.js solo proporcionan algunas API de bajo nivel, la eficiencia del desarrollo de proyectos basados en módulos integrados es muy baja.
El paquete está encapsulado en función de módulos integrados, lo que proporciona una API más avanzada y conveniente, lo que mejora enormemente la eficiencia del desarrollo.
La relación entre paquetes y módulos integrados es similar a la relación entre jQuery y la API integrada del navegador.
4. ¿Dónde descargar paquetes?
Hay una empresa de TI en el extranjero llamada npm, Inc. Esta empresa tiene un sitio web muy famoso: www.npmjs.com/, que es la plataforma para compartir paquetes más grande del mundo. Puede descargarlo desde aquí. sitio web Busque cualquier paquete que necesite, ¡siempre que tenga suficiente paciencia!
Hasta ahora, más de 11 millones de desarrolladores en todo el mundo han desarrollado y compartido más de 1,2 millones de paquetes para nuestro uso a través de esta plataforma para compartir paquetes. npm, Inc. proporciona un servidor en registro.npmjs.org/ para compartir todos los paquetes externamente. Podemos descargar los paquetes que necesitamos desde este servidor.
Nota:
Busque el paquete que necesita en el sitio web www.npmjs.com/
y descargue el paquete que necesita del servidor registro.npmjs.org/
5. Cómo descargar el paquete
npm, Inc. La empresa proporciona una herramienta de administración de paquetes , podemos utilizar esta herramienta de administración de paquetes para descargar los paquetes necesarios desde el servidor registro.npmjs.org/ para uso local.
El nombre de esta herramienta de administración de paquetes es Node Package Manager (conocida como herramienta de administración de paquetes npm). Esta herramienta de administración de paquetes se instala en la computadora del usuario junto con el paquete de instalación de Node.js.
Puede ejecutar el comando npm -v en la terminal para verificar el número de versión de la herramienta de administración de paquetes npm instalada en su computadora:
3.2 Primera experiencia con npm
1. Comando para instalar paquetes en el proyecto
Si desea instalar un paquete con un nombre específico en el proyecto, debe ejecutar el siguiente comando:
npm install El nombre completo del paquete
El comando de empaquetado anterior puede se abreviará en el siguiente formato:
npm i El nombre completo del paquete
2. ¿Qué archivos adicionales se agregan después de la instalación inicial del paquete?
Una vez completada la instalación inicial del paquete, habrá una carpeta adicional llamada node_modules y un archivo de configuración. lock.json en la carpeta del proyecto.
Entre ellos: la carpeta node_modules se utiliza para almacenar todos los paquetes que se han instalado en el proyecto. Cuando require() importa un paquete de terceros, busca y carga el paquete desde este directorio.
El archivo de configuración package-lock.json se utiliza para registrar la información de descarga de cada paquete en el directorio node_modules, como el nombre del paquete, el número de versión, la dirección de descarga, etc.
Nota: Los programadores no deben modificar manualmente ningún código en los archivos node_modules o package-lock.json; la herramienta de administración de paquetes npm los mantendrá automáticamente.
3. Instale la versión especificada del paquete.
De forma predeterminada, cuando utiliza el comando npm install para instalar un paquete, la última versión del paquete se instalará automáticamente. Si necesita instalar un paquete de una versión específica, puede especificar la versión específica mediante el símbolo @ después del nombre del paquete, por ejemplo:
npm i [email protected]
4. La especificación de versión semántica del paquete
El número de versión de el paquete está en "decimal con puntos" Se define en forma de un total de tres dígitos, por ejemplo, 2.24.0
El significado de cada dígito es el siguiente:
1er dígito: versión principal
2do dígito: versión funcional
3er dígito: versión de corrección de errores
número de versión Reglas de promoción: siempre que aumente el número de versión anterior, el número de versión posterior volverá a cero.
3.3 Archivo de configuración de administración de paquetes
npm estipula que se debe proporcionar un archivo de configuración de administración de paquetes llamado package.json en el directorio raíz del proyecto. Se utiliza para registrar cierta información de configuración relacionada con el proyecto. Por ejemplo:
nombre del proyecto, número de versión, descripción, etc.
Qué paquetes se utilizan en el proyecto,
qué paquetes solo se utilizan durante el desarrollo,
qué paquetes se necesitan durante el desarrollo y la implementación
Problemas encontrados
en la colaboración entre varias personas
: el tamaño de Los paquetes de terceros son demasiado grandes, lo que dificulta que los miembros del equipo compartan el código fuente del proyecto.Solución: elimine node_modules al compartir
2. Cómo registrar qué paquetes están instalados en el proyecto
En el directorio raíz del proyecto, cree un archivo de configuración llamado package.json, que se puede usar para registrar qué paquetes están instalados en el proyecto. Esto facilita compartir el código fuente del proyecto entre los miembros del equipo después de eliminar el directorio node_modules.
Nota: En el desarrollo futuro del proyecto, asegúrese de agregar la carpeta node_modules al archivo de ignorar .gitignore.
3. Cree rápidamente package.json
La herramienta de administración de paquetes npm proporciona un comando de acceso directo para crear rápidamente el archivo de configuración de administración de paquetes package.json en el directorio donde se ejecuta el comando:
npm init -y
Nota:
(1) El comando anterior. ¡Solo se puede ejecutar con éxito en el directorio en inglés! Por lo tanto, el nombre de la carpeta del proyecto debe estar en inglés, no en chino, y no debe haber espacios.
(2) Al ejecutar el comando npm install para instalar un paquete, la herramienta de administración de paquetes npm registrará automáticamente el nombre y el número de versión del paquete en package.json.
4. Nodo de dependencias
En el archivo package.json, hay un nodo de dependencias, que se usa especialmente para registrar qué paquetes ha instalado usando el comando npm install.
5. Instale todos los paquetes a la vez.
Cuando eliminamos un proyecto con node_modules, debemos descargar todos los paquetes en el proyecto antes de poder ejecutarlo. De lo contrario, se informará un error similar al siguiente:
Puede ejecutar el comando npm install (o npm i) para instalar todos los paquetes dependientes a la vez:
6. Para desinstalar un paquete
, puede ejecutar el comando npm uninstall para desinstalar el paquete especificado:
npm uninstall nombre del paquete específico
Nota: Después de que el comando npm uninstall se ejecute correctamente, el paquete desinstalado se eliminará automáticamente de las dependencias de package.json . No existe una abreviatura para desinstalar.
7. Nodo devDependencies.
Si algunos paquetes solo se utilizarán durante la fase de desarrollo del proyecto y no se utilizarán después de que el proyecto esté en línea, se recomienda registrar estos paquetes en el nodo devDependencies.
En consecuencia, si es necesario utilizar algunos paquetes después del desarrollo y el lanzamiento del proyecto, se recomienda registrar estos paquetes en el nodo de dependencias.
Puede utilizar el siguiente comando para registrar el paquete en el nodo devDependencies:
3.4 Resuelva el problema de la velocidad de descarga lenta de paquetes
1. ¿Por qué la velocidad de descarga de paquetes es lenta?
Cuando se usa npm para descargar paquetes, se descarga desde el servidor de registro extranjero.npmjs.org/ de forma predeterminada, por lo que la velocidad de descarga de paquetes será muy lenta. .
2. Servidor espejo Taobao NPM
Taobao ha construido un servidor en China para sincronizar paquetes en servidores oficiales extranjeros con servidores nacionales y luego proporcionar servicios de distribución de paquetes en China. Esto mejora enormemente la velocidad de descarga de paquetes.
Extensión: la duplicación es una forma de almacenamiento de archivos. Los datos de un disco tienen una copia idéntica en otro disco, que es una duplicación.
3. Cambie la fuente espejo del paquete de npm.
La fuente espejo del paquete se refiere a la dirección del servidor del paquete.
4. nrm
Para cambiar más convenientemente la fuente de la imagen del paquete, podemos instalar la herramienta nrm y usar el comando de terminal proporcionado por nrm para ver y cambiar rápidamente la fuente de la imagen del paquete.
3.5 Clasificación de paquetes
Los paquetes descargados utilizando la herramienta de administración de paquetes npm se dividen en dos categorías, a saber:
paquete de proyecto
paquete global
1. Paquete de proyecto
Los paquetes que están instalados en el directorio node_modules del proyecto son todos paquetes de proyecto.
Los paquetes de proyecto se dividen en dos categorías, a saber:
paquetes de dependencia de desarrollo (paquetes registrados en el nodo devDependencies, que solo se usan durante el desarrollo)
paquetes de dependencia central (paquetes registrados en el nodo de dependencias, que se usan durante el desarrollo y el proyecto será utilizado después de conectarse)
2. Paquete global Al ejecutar el comando npm install, si se proporciona el parámetro -g, el paquete se instalará como un paquete global.
El paquete global se instalará en el directorio C:Usersuser directorioAppDataRoamingnpmnode_modules.
Nota:
(1) Sólo es necesario instalar globalmente los paquetes de herramientas. Porque proporcionan comandos de terminal útiles.
(2) Para determinar si un paquete debe instalarse globalmente antes de poder usarse, puede consultar las instrucciones de uso oficiales.
3. i5ting_toc
i5ting_toc es una pequeña herramienta que puede convertir documentos md en páginas html. Los pasos a utilizar son los siguientes:
3.6 Estructura de paquetes estandarizada
Después de comprender el concepto de paquetes y cómo descargarlos y usarlos, echemos un vistazo más profundo a la estructura interna de los paquetes.
Un paquete estandarizado debe cumplir los siguientes tres requisitos:
(1) El paquete debe existir en un directorio separado
(2) El directorio de nivel superior del paquete debe contener el archivo de configuración de administración de paquetes package.json
(3) package.json debe contener tres atributos: nombre, versión y principal, que representan respectivamente el nombre del paquete, el número de versión y la entrada del paquete.
Nota: Los tres requisitos anteriores son el formato que debe cumplir una estructura de paquete estandarizada. Para obtener más restricciones, puede consultar la siguiente URL: https://yarnpkg.com/zh-Hans/docs/package-json
3.7 Desarrolle su. propio paquete
1. Inicialice la estructura básica del paquete
(1) Cree una nueva carpeta itheima-tools como directorio raíz del paquete
(2) En la carpeta itheima-tools, cree los siguientes tres archivos:
package.json (administración de paquetes archivo de configuración)
index.js (archivo de entrada del paquete)
README.md (documento de descripción del paquete)
2. Inicializar paquete.json
Nota: nombre: se utiliza para indicar el nombre de la aplicación o paquete de software; indica la versión actual; principal: establece el punto de entrada de la aplicación; es una breve descripción de las palabras clave de la aplicación/paquete de software; Matriz de palabras clave relacionadas con la función del paquete de software (ayuda a navegar por el sitio web oficial del nodo para encontrar la licencia del paquete de software; especifica la licencia del paquete de software);
3. Escriba la documentación del paquete.
El archivo README.md en el directorio raíz del paquete es la documentación de uso del paquete. A través de él, podemos escribir las instrucciones de uso del paquete en formato Markdown por adelantado para comodidad del usuario.
No existen requisitos obligatorios sobre qué contenido debe escribirse en el archivo README siempre que la función, el uso, las precauciones, etc. del paquete se puedan describir claramente.
3.8 Paquete de lanzamiento
1. Registre la cuenta npm
(1) Visite el sitio web www.npmjs.com/, haga clic en el botón de registro para ingresar a la interfaz de usuario de registro
(2) Complete la información relacionada con la cuenta: nombre completo, correo electrónico público, nombre de usuario, Contraseña
(3) Haga clic en el botón Crear una cuenta para registrar una cuenta
(4) Inicie sesión en su correo electrónico y haga clic en el enlace de verificación para verificar la cuenta
2. Inicie sesión en la cuenta npm
Una vez completado el registro de la cuenta npm, usted
.Puede ejecutar el comando npm login en la terminal e ingresar el nombre de usuario y la contraseña (contraseña). Está oculto y no se puede ver. Simplemente ingrese la clave correcta (Entrar), la dirección de correo electrónico y el código OTP enviado a la dirección de correo electrónico, y luego. puedes iniciar sesión exitosamente.
Nota: antes de ejecutar el comando de inicio de sesión de npm, primero debe cambiar la dirección del servidor del paquete al servidor oficial de npm. (Si estaba utilizando el servidor taobao antes, debe cambiar al servidor oficial npm). De lo contrario, la publicación del paquete fallará.
3. Publique el paquete en npm
.
Después de cambiar la terminal al directorio raíz del paquete, ejecute el comando npm Publish para publicar el paquete en npm (nota: los nombres de los paquetes no pueden ser los mismos. Puede ir al sitio web oficial para. compruebe si hay paquetes con el mismo nombre).
4. Elimine el paquete publicado.
Ejecute el comando npm unpublish package name --force para eliminar el paquete publicado de npm.
Nota:
(1) El comando npm unpublish solo puede eliminar paquetes publicados dentro de las 72 horas
(2) Los paquetes eliminados por npm unpublish no pueden volver a publicarse dentro de las 24 horas
(3) Tenga cuidado al publicar paquetes e intente no publicarlos en npm ¡Paquete sin sentido!
4.1 Priorizar la carga desde el caché
Los módulos se almacenarán en caché después de la primera carga. Esto también significa que llamar a require() varias veces no hará que el código del módulo se ejecute varias veces.
Nota: Ya sean módulos integrados, módulos definidos por el usuario o módulos de terceros, se cargarán primero desde la memoria caché, lo que mejorará la eficiencia de carga del módulo.
4.2 Mecanismo de carga de módulos integrados
Los módulos integrados son módulos proporcionados oficialmente por Node.js. Los módulos integrados tienen la máxima prioridad de carga.
Por ejemplo: require('fs') siempre devuelve el módulo fs incorporado, incluso si hay un paquete con el mismo nombre en el directorio node_modules, también se llama fs.
4.3 Mecanismo de carga de módulos personalizados
Cuando utilice require() para cargar un módulo personalizado, debe especificar un identificador de ruta que comience con ./ o ../. Al cargar un módulo personalizado, si no se especifica ningún identificador de ruta como ./ o ../, node lo cargará como un módulo integrado o un módulo de terceros.
Al mismo tiempo, cuando se utiliza require() para importar un módulo personalizado, si se omite la extensión del archivo, Node.js intentará cargar los siguientes archivos en orden:
(1) Cargar según el nombre exacto del archivo
(2) Finalizar Extensión .js para cargar
(3) Complete la extensión .json para cargar
(4) Complete la extensión .node para cargar
(5) La carga falla, el terminal informa un error
4.4 Si el mecanismo de carga de módulos de terceros
se pasa a require () Si el identificador del módulo no es un módulo integrado y no comienza con './' o '../', Node.js intentará cargar el módulo de terceros desde la carpeta /node_modules, comenzando desde directorio principal del módulo actual.
Si no se encuentra el módulo de terceros correspondiente, se mueve al directorio principal un nivel superior y se carga hasta el directorio raíz del sistema de archivos.
Por ejemplo, suponiendo que se llama a require('tools') en el archivo 'C:Usersitheimaprojectfoo.js', Node.js buscará en el siguiente orden:
(1) C:Usersitheima proyecto node_modulestools
(2) C:Usersitheimanode_modulestools
(3) C:Usersnode_modulestools
(4) C:node_modulestools
4.5 Directorio como módulo
Al pasar el directorio como módulo identificador, al cargar require(), hay tres métodos de carga:
(1) Busque un archivo llamado package.json en el directorio que se está cargando y busque el atributo principal, que sirve como punto de entrada para que require() cargue
( 2) Si en el directorio no hay un archivo package.json, o la entrada principal no existe o no se puede analizar, Node.js intentará cargar el archivo index.js en el directorio.
(3) Si los dos pasos anteriores fallan, Node.js imprimirá un mensaje de error en la terminal, informando que falta el módulo: Error: No se puede encontrar el módulo 'xxx'
Este artículo se reproduce de: https://juejin.cn/post /7083445004240158757