npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

typescript-nodejs-proyect-template

v1.0.8

Published

```sh mkdir typescript-starter cd typescript-starter ```

Downloads

22

Readme

mkdir typescript-starter
cd typescript-starter

Usar el flag -y al crear el package.json aprobará todos los valores por defecto y así evitará tener que responder a cada pregunta en el proceso de creación del file.

npm init -y

Instalamos las dependecias de typescript y los types de node para typescript.

npm install typescript --save-dev
npm install @types/node --save-dev
npx tsc --init --rootDir src --outDir build --esModuleInterop --resolveJsonModule --lib es6 --module commonjs --allowJs true --noImplicitAny true

Descripción de Flags:

rootDir: aquí es donde TypeScript busca nuestro código. Lo hemos configurado para buscar en la carpeta src /. Ahí es donde escribiremos nuestro TypeScript.

outDir: donde TypeScript coloca nuestro código compilado. Queremos que vaya a una carpeta build /.

esModuleInterop: si estuvo en el espacio de JavaScript durante los últimos años, es posible que haya reconocido que los sistemas de módulos se habían descontrolado un poco (AMD, SystemJS, módulos ES, etc.). Para un tema que requiere una discusión mucho más larga, si usamos commonjs como nuestro sistema de módulos (para las aplicaciones de Node, debería estarlo), entonces necesitamos que esto se establezca en verdadero.

resolveJsonModule: si usamos JSON en este proyecto, esta opción permite que TypeScript lo use.

lib: esta opción agrega tipos de ambiente a nuestro proyecto, lo que nos permite confiar en características de diferentes versiones de Ecmascript, bibliotecas de prueba e incluso la API DOM del navegador. Nos gustaría utilizar algunas funciones del idioma es6. Todo esto se compila en es5.

module: commonjs es el sistema de módulos de nodo estándar en 2019. Usemos eso.

allowJs: si está convirtiendo un antiguo proyecto de JavaScript a TypeScript, esta opción le permitirá incluir archivos .js entre los .ts.

noImplicitAny: en los archivos TypeScript, no permita que un tipo se especifique de forma implícita. Cada tipo debe tener un tipo específico o declararse explícitamente como alguno. Sin anys implícitos.

Estructura básica de tsconfig.json para usar npm package en proyectos con typescript:

{
  "compilerOptions": {
    "target": "es5",                          
    "module": "commonjs",                    
    "lib": ["es6"],                     
    "declaration": true,
    "declarationMap": true,
    "outDir": "build",                          
    "rootDir": "src",
    "composite": true,
    "strict": true,         
    "noImplicitAny": true,
    "esModuleInterop": true,
    "resolveJsonModule": true
  }
}

Creamos el directorio src y el file src/index.ts. En este file es dónde el proyecto se iniciará.

mkdir src
touch src/index.ts

Añade esta línea de código en index.ts

console.log('Hello world!');

Compilamos typescript.

npx tsc

Esto generará la siguiente salida en build/index.js:

"use strict";
console.log('Hello world!');

Instalar ts-node para trabajar en tiempo real con typescript sin necesidad de compilar continuamente el código.

npm install --save-dev ts-node nodemon

Crear en el root del proyecto el file nodemon.json y añadirle las siguientes líenas:

{
  "watch": ["src"],
  "ext": ".ts,.js",
  "ignore": [],
  "exec": "ts-node ./src/index.ts"
}

En package.json, en la sección de "scripts", añadir la sigueinte línea:

"start:dev": "nodemon"

Luego ejecutar npm run start:dev.

Instalar rimraf para limpiar y compilar el proyecto para producción.

npm install --save-dev rimraf

En package.json, en la sección de "scripts", añadir la sigueinte línea:

"build": "rimraf ./build && tsc"

En package.json, en la sección de "scripts", añadir la sigueinte línea:

"start": "npm run build && node build/index.js"

Ejecutar npm run start para correr el proyecto en producción.

Para publicar el npm package se sigue el siguiente proceso:

npm login

Entrar username y password de npm y luego el email al cual está atada la cuenta. En el file package.json ajustar los valores de:

{
  "name": "El nombre del proyecto",
  "version": "1.0.0", ← la versión del proyecto
  "description": "Descripción del proyecto",
  ...
  "keywords": ["varios", "keywords", "para que sea fácil", "de encontrar"],
  "author": "mi nombre como desarrollador o el nombre de la compañía",
  ...
}

Luego ejecutar npm publish para publicar el package. Para actualizar el npm package es necesario siempre actualizar la versión del mismo en el file package.json sección "version:" El control de versiones se debe entender de la siguiente manera:

| Estatus del código | Estado | Regla de versión | Ejemplo númerico de versión | |---|---|---|---| | Primera publicación | Nuevo producto | Comienza en 1.0.0 | 1.0.0 | | Compatibilidad con versiones anteriores y corrección de errores | Publicación de parche | Se incrementa el tercer dígito | 1.0.1 | | Compatibilidad con versiones anteriores y nuevas integraciones | Publicación menor | Se incrementa el segundo dígito y se reinicia el tercero a cero | 1.1.0 | | Cambios que rompen con versiones anteriores | Publicación mayor | Se incrementa el primer dígito y se reinicia el segundo y tercer dígitos a cero | 2.0.0 |