• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • Excel
  • IA Generativa

Creación de una librería JavaScript

febrero 8, 2019 Por Daniel Rodríguez 2 comentarios
Tiempo de lectura: 5 minutos

JavaScript

Hoy comienza una serie de entradas en las que se explicará el proceso de creación de una librería JavaScript desde cero. Para lo que se utilizará el entorno de ejecución Node.js.

JavaScript es uno de los lenguajes más populares en la actualidad, debido a que se encuentra disponible en todos los navegadores. Por lo que no es de extrañar que existan múltiples librerías de Machine Learning JavaScript con las que es posible entrenar y ejecutar modelos. Este es el motivo de esta serie, explicar cómo crear una librería en JavaScript para poder distribuir los modelos para ser ejecutados en navegadores o entornos Node.

La serie consta de ocho entregas, publicándose una cada viernes a partir de hoy. En las entregas se verá cómo estructurar un proyecto en node, la creación de pruebas unitarias, medir el grado de cobertura de estas, auditar el código, la ejecución de scripts npm y la distribución del proyecto. Para seguir la serie solamente es necesario disponer de conocimientos básicos de JavaScript.

En esta primera entrega se verán los pasos básicos para la instalación de Node.js y la creación de un proyecto. Además de escribir las primeras funciones y ejecutar estas en el navegador.

Tabla de contenidos

  • 1 Instalación de Node.js
  • 2 Inicialización del proyecto
  • 3 Primera función de la librería
  • 4 Distribuir el trabajo
  • 5 Excluir dependencias del archivo final
  • 6 Ejecutar en el navegador
  • 7 Conclusiones

Instalación de Node.js

Node.js es un entorno de ejecución JavaScript que funciona sin la necesidad de tener un navegador web. Basado en el motor V8 desarrollado por Google que es el utilizado en diferentes navegadores como es el caso de Chrome. La instalación de Node.js es tan sencilla como ir a la página web del proyecto, descargar el instalador para nuestro sistema operativo y ejecutar este.

¡Nuevo video! Aprende a eliminar filas y columnas en Pandas sin errores
En Analytics Lane
¡Nuevo video! Aprende a eliminar filas y columnas en Pandas sin errores

Página web del proyecto Node.js
Página web del proyecto Node.js

Una vez finalizada la instalación de Node.js se puede abrir una terminal y comprobar la versión instalada. Esto se hace escribiendo en la terminal el comando node --version. En el caso de que todo esté correcto debería aparecer el número de versión. También se puede comprobar la versión de npm, el gestor de paquetes que utiliza Node.js, escribiendo el comando npm --version. Al igual que el caso anterior debería aparecer el número de versión.

Publicidad


Inicialización del proyecto

Tras la instalación de Node.js se puede crear una carpeta en la que se albergará el proyecto. En este tutorial llamaremos a la carpeta jslane. Desde la terminal y dentro de esta carpeta escribiremos el comando npm init. Es decir, en la terminal es necesario escribir los siguientes comandos:

$ mkdir jslane
$ cd jslane
$ npm init

Esto inicializará un asistente en el que se preguntará por los datos del proyecto. En esta ocasión simplemente se puede usar las respuestas por defecto del asistente. Una vez finalizado se creará un archivo JSON con los datos indicados al asistente.

{
  "name": "jslane",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

Primera función de la librería

Ahora que se ha creado el proyecto se puede comenzar a escribir el código JavaScript de la primera función. Un ejemplo típico es una función que escriba “Hello, World!” en la terminal del navegador.

El punto de inicio del proyecto, si no se ha seleccionado otra opción en el asistente, es el archivo index.js. Ahora con un editor de texto se creará este archivo con el siguiente código.

const hello = function () {
    console.log('Hello, World!');
};

module.exports = {hello: hello};

En este archivo se puede ver una función hello que imprime por la consola una cadena de texto. Posteriormente esta función de exporta para que pueda ser utilizada fuera del módulo. Para comprobar que el código funciona se puede creará un nuevo archivo run.js con las siguientes líneas.

const jslane = require('./index');

jslane.hello();

En la primera línea se importa la librería mientras que en la segunda se ejecuta la función creada anteriormente. Para comprobar su funcionamiento solamente es necesario escribir en la terminal node run.

$ node run
Hello, World!

Publicidad


Distribuir el trabajo

Para crear una librería que se pueda utilizar posteriormente en el navegador se va a utilizar Browserify. Browserify es una herramienta de código abierto de JavaScript que permite compilar los módulos Node.js en una archivo que posteriormente se puede importar en otro proyecto. La instalación se realiza desde la terminal con el comando:

sudo npm install browserify -g

La opción -g indica que el paquete se instalar de forma global en sistema, por lo que en sistemas UNIX es necesario utilizar sudo. En sistemas Windows el comando sudo se ha de omitir. Al instalarlo de forma global no es necesario volver a instalar la dependencia para cada proyecto. Ahora simplemente se puede compilar la librería escribiendo en la terminal

browserify index.js --standalone jslane -o ./dist/jslane.js

Este comando produce un archivo jslane.js en la carpeta dist del proyecto. Este archivo es el que después se puede utilizar en un navegador.

Como este comando se utiliza continuamente para compilar la librería es mejor guardarlo en el listado de scripts del archivo package.json. Agregando una nueva propiedad build a scripts con el comando anterior. Una vez hecho esto, se puede compilar con el comando

npm run build

Excluir dependencias del archivo final

Puede ser que en el proyecto se utilizan librerías globales que no han de ser incluidas en el archivo generado. Ya que estas se importarán por separado, como puede ser jquery. Browserify por defecto incluirá el código de estas, por lo que es necesario indicar que las ignore explícitamente. El modificador para ellos es --ignore seguido del nombre de nombre de la librería. Por ejemplo, en el caso de utilizar jquery es necesario escribir el siguiente comando

browserify index.js --standalone jslane --ignore workerpool -o ./dist/jslane.js

Publicidad


Ejecutar en el navegador

Una vez creado el archivo compilado se puede ejecutar el código en un navegador. Esto se puede comprobar utilizando el siguiente archivo HTLM.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <script src='./dist/jslane.js'></script>
	</head>
	<body>
        <script language="javascript">
            jslane.hello();
        </script>
	</body>
</html>

En un navegador se puede comprobar cómo este funciona perfectamente.

Resultado de la ejecución en el navegador
Resultado de la ejecución en el navegador

Conclusiones

En esta primera entrada se han visto los primeros pasos del proceso de creación de una librería JavaScript. En futuras entradas se verá cómo dividir el código diferentes módulos para facilitar el desarrollo.

Gracias por el tiempo dedicado a la lectura de esta entrada. En caso de estar interesado en seguir esta serie, además del resto de publicaciones, podéis suscribiros a la lista de correo, al canal de Telegram o seguir a Analytics Lane en las redes sociales.

Todo el código utilizado en esta serie se puede descargar en el siguiente repositorio.

Imágenes: Pixabay (skylarvision)

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 5 / 5. Votos emitidos: 2

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicidad


Publicaciones relacionadas

  • ¡Nuevo video! Aprende a eliminar filas y columnas en Pandas sin errores
  • Nuevo video en el canal: Cómo eliminar duplicados de una lista en Python
  • Nuevo video en YouTube: Trabajando con archivos JSON en Python
  • Nuevo video: Leer y guardar archivos Excel y CSV en Python
  • Nuevo video: cómo activar copiar y pegar en VirtualBox fácilmente
  • Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM
  • Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey
  • Cómo calcular el tamaño de la muestra para encuestas
  • Curiosidad: La Ley de Twyman y la trampa de los datos “interesantes”

Publicado en: JavaScript Etiquetado como: Node

Interacciones con los lectores

Comentarios

  1. chaqui dice

    abril 27, 2020 a las 11:02 pm

    tengo el siguiente error a la hora de querer importarlo en el archivo run.js
    SyntaxError: Cannot use import statement outside a module

    Responder
    • Daniel Rodríguez dice

      abril 28, 2020 a las 8:58 am

      Entiendo que es al cargar en el navegador. El archivo run.js no se puede usar en el navegador ya que pertenece a un modulo, hay que importar el archivo compilado que se genera en la carpeta dist.

      Responder

Deja una respuesta Cancelar la respuesta

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

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Curiosidad: La Ley de Twyman y la trampa de los datos “interesantes”

septiembre 11, 2025 Por Daniel Rodríguez

Cómo calcular el tamaño de la muestra para encuestas

septiembre 9, 2025 Por Daniel Rodríguez

Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey

septiembre 4, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Insertar minigráficos en Excel publicado el junio 8, 2022 | en Herramientas
  • Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas publicado el mayo 10, 2019 | en Python
  • pandas Pandas: Cambiar los tipos de datos en los DataFrames publicado el julio 15, 2021 | en Python
  • Regresión de Vectores de Soporte (SVR, Support Vector Regression) publicado el diciembre 17, 2021 | en Ciencia de datos
  • Noticias Disponible la traducción de la tercera edicción de “Hands-On Machine Learning” de Aurelien Geron publicado el junio 20, 2023 | en Noticias

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto