CSS

Nodo y cómo funciona con npm trucos CSS

Esto es lo que necesita saber sobre Node.js (o simplemente Node) y cómo se conecta a npm de inmediato:

  • Node es JavaScript, pero como lenguaje del lado del servidor.
  • Esto es posible gracias al V8, el motor de JavaScript de Chromium, que puede ejecutarse por sí solo, fuera del navegador.
  • JavaScript basado en nodos y basado en navegador puede ser muy diferente y tener diferentes capacidades, aunque ambos están basados ​​en JavaScript.
  • No necesita conocer Node para usar npm.

Como ya sabrá, npm significa Administrador de paquetes de nodos (incluso si el funcionario sitio web de npm muestra divertidos nombres alternativos en su título cada vez que se carga una página, como «Ninja Pumpkin Mutants»).

La clave que debe saber de inmediato es esto: «Nodo» y «Administrador de paquetes» son las dos partes grandes y separadas que se combinan para hacer npm.

Veremos qué es un administrador de paquetes y por qué podría considerar usar uno cuando lleguemos al siguiente capítulo de esta guía de npm. Por ahora, sin embargo, concentrémonos en comprender qué es Node, ya que es una parte clave para comprender el desarrollo web moderno.

Capítulos del manual

  1. ¿Para quién diablos es esta guía?
  2. ¿Qué diablos significa «npm»?
  3. ¿Qué diablos es la línea de comandos?
  4. ¿Qué diablos es Nodo? (¡Estás aquí!)
  5. ¿Qué diablos es un administrador de paquetes?
  6. ¿Cómo diablos se instala npm?
  7. ¿Cómo diablos instalas los paquetes npm?
  8. ¿Qué demonios son los comandos npm?
  9. ¿Cómo diablos se instala un proyecto npm existente?

El nodo es JavaScript, pero sin el navegador completo

Probablemente conozca JavaScript principalmente como un lenguaje que funciona en el navegador, similar a HTML y CSS. Sí, cada uno de estos lenguajes tiene abstracciones y superconjuntos (como HAML para HTML, Sass para CSS y TypeScript para JavaScript, como ejemplos), así como compiladores y transpiladores y todo tipo de cosas que los transforman en tal o cual forma. Pero al final, lo que estas herramientas generan es código estándar (es decir, puro) con la sintaxis correcta, como si las abstracciones nunca se usaran para ejecutarse en el navegador y solo en el navegador.

Esto es lo que me tomó más tiempo descubrir y que, francamente, podría ser una nota perdida aún más grande que todo el asunto de npm. JavaScript ya no necesita un navegador para funcionar. Entonces, a veces verá que me refiero a Node JavaScript cuando lo diferencio de JavaScript «basado en navegador».

Idiomas del lado del servidor versus idiomas del cliente

En este punto, creo que vale la pena tomarse un tiempo para estudiar la diferencia entre los lenguajes del lado del cliente (HTML, CSS, JavaScript) y los lenguajes del lado del servidor (básicamente todos los demás). No asumiremos que tiene experiencia con lenguajes de servidor como PHP, Ruby o Python, pero si concepto los idiomas del lado del servidor son completamente nuevos para ti, puede valer la pena leyendo cuales son. (Para resumir: estos son lenguajes de código que se ejecutan solo en un servidor en lugar de un navegador, y generalmente tienen capacidades mucho más amplias y poderosas).

Esto es apropiado porque hace unos años, alrededor de 2009, hubo algunas personas muy inteligentes que De Verdad Me gustó JavaScript. En particular, les gustó cómo rápido JavaScript es (especialmente en comparación con los lenguajes dominantes del lado del servidor en ese momento, principalmente PHP y Ruby) y querían tener JavaScript En todas partes, no solo en el navegador.

ryan dahl es la figura más famosa entre ellos y se atribuye a la invención del Nodo (y más recientemente, Denoque es un anagrama de Nodo). Esto es algo divertido de saber, pero por lo demás no está estrictamente relacionado con este tema.

Cómo funciona el nodo

Lo relevante, sin embargo, es esto El nodo es esencialmente JavaScript como el idioma del servidor que se está ejecutando fuera de sobre el navegador.

¿Cómo es eso posible? Debajo del capó, cada navegador tiene su propio motor de JavaScript individual. Esta es la parte del navegador que en realidad es Huye JavaScript. Sí, obviamente es una parte separada del navegador, no parte de los mismos bits que hacen HTML y CSS, lo que supongo que tiene sentido cuando piensas en el hecho de que tenemos una API literal entre el documento y JavaScript. Demonios, incluso el concepto de DOM tiene más sentido cuando piensas en el departamento que maneja JavaScript, como una oficina improvisada en el pasillo del departamento de HTML.

El motor de JavaScript en los navegadores basados ​​en Chromium se llama V8, probablemente después de tipo específico de motor de automóvil (No «bebida vegetal”Hecho principalmente de jugo de tomate. V8 es el motor JavaScript más popular. Gracias a ECMAScript esfuerzos de estandarización en los últimos 15 años, ya no hay diferencias significativas entre los motores de JavaScript cuando se trata de navegadores. El motor utilizado en Chrome es muy similar al motor que ejecuta Firefox, que es muy similar a Safari, etc. La popularidad del V8 en estos días tiene menos que ver con sus distinciones, pero más con la ubicuidad autosuficiente de Chrome.

(Nota al margen: la máquina JavaScript de Firefox se llama SpiderMonkey. No es muy relevante, pero es otra prueba de que Firefox es el mejor.)

¿Por qué importa esto? Resulta que puedes obtener el motor de JavaScript fuera de en un navegador y con algunas modificaciones, ejecútelo usted mismo, algo así como si decide quitar el estéreo del automóvil, arreglarlo un poco y convertirlo en un sistema estéreo para su hogar. El V8 (y probablemente el estéreo del automóvil) puede funcionar perfectamente como un dispositivo independiente todos los tipos ambiente.

En otras palabras: V8 hace posible ejecutar JavaScript En todas partesEs por eso que tenemos JavaScript de «nodo» y JavaScript «basado en navegador».

El nodo es casi (pero no exactamente) JavaScript

Para resumir: ¡JavaScript ya es un lenguaje del lado del servidor! Su nombre es Nodo y él pudo significa ni siquiera deber para aprender algo sobre otros idiomas desde el servidor. Somos desarrolladores frontend y ahora tenemos superpoderes.

Habiendo dicho todo esto, sin embargo, Node y JavaScript, que está acostumbrado a ejecutar en el navegador, son similares y muy diferentes entre sí.

A riesgo de adentrarme demasiado en la maleza aquí: aunque ambos son básicamente JavaScript y aunque el lenguaje y la sintaxis son los mismos, muchos elementos básicos de JavaScript en el navegador (como window o documente incluso a menudo se da por sentado alert) no están presentes en un entorno de nodo de servidor puro es sin ventana, por supuesto, cuando el idioma funciona solo, no en un navegador. Los desarrolladores de JavaScript de nuevos nodos a menudo se sorprenden al saber que incluso fetch en realidad es una API de navegador, no JavaScript «puro».

Pero no tengas miedo. console.log sigue siendo tu mejor amigo, y hay muchos nuevocaracterísticas específicas del entorno de Node JavaScript que difieren de la implementación de JavaScript en el navegador, como process un objeto que contiene todos los detalles de todos los procesos que se están ejecutando actualmente.

Node y su ecosistema a menudo crecen por necesidad en una dirección muy diferente de JavaScript basado en navegador a lo largo de los años. (Como ejemplo obvio: la sintaxis para importar entre los dos ha sido diferente durante años y recién ahora está comenzando a fusionarse nuevamente. Hablaremos un poco más sobre esto en el último capítulo).

Node ha tenido durante mucho tiempo el privilegio de poder moverse mucho más rápido que los navegadores cuando se trata de adquirir nuevas funciones, y también tenía su propio conjunto de problemas con los que lidiar. Comenzó a potenciar las aplicaciones del lado del servidor de la misma manera que lo habían hecho Ruby y PHP durante años, incluso cuando los navegadores aún intentaban unificar los estándares. Como resultado, Node JavaScript y JavaScript basado en navegador se han convertido en primos en lugar de clones.

Esto es lo que creo que es una analogía justa para explicar las diferencias entre los dos primos de JavaScript: considere dos instrumentos musicales similares, digamos un contrabajo y un bajo eléctrico moderno. Ambos instrumentos están afinados por igual y tocan las mismas notas; si conoces a uno, en muchos sentidos, conoces al otro. Pero aunque será mucho más fácil para ti aprender uno después de aprender el otro, obras de teatro el nuevo será muy diferente a lo que estás acostumbrado.

Lo mismo, pero diferente (Fotos: Wikimedia Commons, Desplázate)

De manera similar, mientras que un desarrollador puede escribir un tipo de JavaScript y otro desarrollador puede escribir otro tipo de JavaScript, es poco probable que sus tareas tengan el mismo aspecto.

Node es JavaScript, con las otras capacidades de lenguaje del servidor mencionadas anteriormente, como leer y escribir en el sistema de archivos, acceso a la API de nivel del sistema, correo electrónico, la capacidad de escuchar y responder solicitudes, tareas programadas. la lista continúa.

No diré más sobre esto aquí, pero sepa que si bien ambos son JavaScript al final del día, funcionan en diferentes entornos y cada uno puede hacer algunas cosas que el otro no puede. Incluso si ha escrito un navegador basado en JavaScript antes, Node probablemente se sentirá un poco extraño a la sintaxis básica y, a menudo, se usará de muchas maneras diferentes.

Nodo de trabajo localmente

Como suele ser el caso con los lenguajes del lado del servidor, usted hacer debe instalar Node antes de poder usarlo.

El nodo generalmente se instala junto con npm, como uno solo, porque la parte del administrador de paquetes necesita el nodo, y la parte del nodo es más útil con el administrador de paquetes. (Puedes decir que son paquete acuerdo. No, no me disculparé por esta broma. Soy un padre después de todo.)

Me gustaría enfatizar en este punto que no necesita saber nada sobre Node para usar npm. Entonces, aunque voy a cubrir algunos ejemplos de Node aquí, considere que es bueno saber toda esta sección, pero no es esencial. Creo que sigue siendo útil para tener una idea un poco mejor de cómo funciona Node, solo para pintar una imagen más completa.

Veremos cómo instalar Node y npm en un próximo capítulo de esta guía. Por lo tanto, si aún no lo ha instalado, puede explorar esta parte u obtenerlo vuelve aquí cuando lo tengas listo. De alguna manera, esto no será crucial para seguir junto con esta guía de npm.

Si quieres probarlo, puedes crear uno nuevo test.js archivo y pegue algo de JavaScript general en él. Algo como el siguiente código, que registra algún contenido en la consola, debería funcionar:

console.log('Look, ma, Node hands!')

const oneThroughFive = [1, 2, 3, 4, 5]

oneThroughFive.forEach(number => {
  console.log(number)
})

Suponga que escribe este código, luego abre el símbolo del sistema en una ventana de terminal, vaya a donde está el archivo (usando cdo «cambiar directorio») e iniciar node test.js para obtener el siguiente resultado:

Look, ma, Node hands!
1
2
3
4
5

Usted puede también ingresar node solo (sin nombre de archivo después de eso) para abrir una terminal interactiva donde puede ejecutar cualquier Node JavaScript. Si alguna vez abrió la consola de DevTools en su navegador para escribir código, esto es exactamente qué es, solo en la línea de comando con Node en su lugar.

Pruébelo si quiere, asumiendo que tiene Node instalado. Pero nuevamente, todo esto es solo para ilustración y no es necesario para usar npm.

Captura de pantalla de una ventana abierta del terminal, que muestra un Nodo versión 17.0.1 en ejecución y el resultado del ejemplo anterior debajo.

Qué sigue

Todo lo que hemos cubierto en este capítulo es excelente y esperamos que le ayude a mostrarle (tan simple como es) cómo funciona Node. Recuerda que aunque no hemos visto un ejemplo concreto de esto, Node es capaz de hacer todo lo que puede hacer un lenguaje del lado del servidor, todo lo que se te ocurra a nivel de sistema o incluso en un servidor remoto es muy atractivo y rentable.

El concepto de Nodo comenzó como una forma de ejecutar JavaScript fuera del navegador. Como tal, tenemos paquetes de secuencias de comandos basados ​​en nodos que se utilizan para ayudarnos a desarrollar el front-end. Entonces, ¿cómo instalamos estos paquetes y nos aseguramos de que no solo estén actualizados, sino que se puedan desinstalar? Esto está contenido en las dos últimas letras de la abreviatura npm: gerente de empaquetación.

En otras palabras, npm es una herramienta que administra paquetes escritos en Node JavaScript. ¿Qué es exactamente un administrador de paquetes y cómo califica npm como tal? Esto es lo siguiente en nuestra guía npm.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba