• 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
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Calculadora XIRR con Flujos Irregulares
      • Simulador FIRE (Financial Independence, Retire Early)
    • Riesgo
      • Constructor de Scorecards de Crédito
      • Aplicar Scorecard de Crédito
    • Herramientas
      • Formateador / Minificador de JSON
      • Conversor CSV ↔ JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

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

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 test de normalidad interactivo en el laboratorio de Analytics Lane
En Analytics Lane
Nuevo test de normalidad interactivo en el laboratorio de Analytics Lane

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.

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"
}

Publicidad


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!

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?

Publicaciones relacionadas

  • Nuevo test de normalidad interactivo en el laboratorio de Analytics Lane
  • Nuevo conversor de timestamp Unix en el laboratorio de Analytics Lane
  • Calculadora de Contrastes de Hipótesis: interpreta correctamente el p-valor y toma decisiones estadísticas con confianza
  • Calculadora de Tamaño del Efecto: la herramienta clave para entender cuánto importa realmente una diferencia
  • Simulador de DBSCAN: descubre cómo encontrar clusters reales (y ruido) sin fijar K
  • Conversor de Colores: convierte, compara y valida cualquier color en tiempo real
  • Analytics Lane lanza su Generador de UUIDs: identificadores únicos, seguros y listos para producción en segundos
  • 1200 publicaciones en Analytics Lane
  • Analytics Lane lanza su Conversor TIN ↔ TAE: la herramienta definitiva para entender el coste real de depósitos, préstamos e hipotecas

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

Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar

mayo 7, 2026 Por Daniel Rodríguez

WOE e IV: La Base Matemática del Credit Scoring

mayo 5, 2026 Por Daniel Rodríguez

Noticias

Lanzamiento de la versión 1.0 del laboratorio de Analytics Lane con nuevas herramientas de scoring

mayo 2, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Buscar en Excel con dos o más criterios publicado el septiembre 7, 2022 | en Herramientas
  • Gráficos de barras en Matplotlib publicado el julio 5, 2022 | en Python
  • Importar datos desde Google Spreadsheets en Python con Pandas publicado el septiembre 21, 2020 | en Python
  • Visualización de valores faltantes en el conjunto de datos planets Visualización de valores faltantes con Missingno publicado el diciembre 6, 2021 | en Python
  • Cargar archivo CSV en Excel con diferentes delimitadores de columna publicado el marzo 4, 2020 | en Herramientas

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.9 (11)

Pandas: Cambiar los tipos de datos en los DataFrames

Comentarios recientes

  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • 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

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-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto