Skip to content

arskang/npm-typescript-template

Repository files navigation

npm-typescript-template

CI npm version license

Plantilla para crear librerías de npm en TypeScript, listas para publicar tanto en formato CommonJS como ESM.

Qué incluye

  • TypeScript con salida dual CJS/ESM + tipos, generada con tsup.
  • ESLint (flat config) + Prettier para lint y formato.
  • Jest + ts-jest para tests.
  • Husky + lint-staged para lintear/formatear automáticamente antes de cada commit.
  • CI con GitHub Actions (lint, test y build en cada push/PR).

Cómo usar esta plantilla

  1. Crea tu repositorio a partir de este template (botón "Use this template" en GitHub) o clónalo.

  2. Actualiza en package.json: name, description, author, repository, bugs, homepage, keywords y version (vuelve a 0.1.0 si es un proyecto nuevo).

  3. Reemplaza el contenido de src/index.ts por el código de tu librería, y los tests de tests/ por los tuyos.

  4. Actualiza este README con la documentación real de tu librería.

  5. Instala las dependencias y verifica que todo funcione:

    yarn install
    yarn build
    yarn test
    yarn eslint

Requisitos

  • Node.js 20.19+, 22.13+ o 24+ (ver campo engines en package.json; hay un .nvmrc con la versión recomendada).
  • Yarn (hay un yarn.lock commiteado; también funciona con npm install pero se recomienda mantener un solo lockfile).

Scripts

Script Qué hace
yarn build Compila src a lib/ en CJS + ESM + tipos (tsup).
yarn test Corre la suite de tests con Jest.
yarn eslint Lintea src y tests.
yarn format Formatea src con Prettier.
yarn lint-staged Corre lint-staged manualmente (lo mismo que se ejecuta en el pre-commit).

Estructura

src/       código fuente de la librería
tests/     tests (Jest)
lib/       salida del build (generada, no se commitea)

Publicar una nueva versión

npm version patch|minor|major
npm publish

preversion/prepublishOnly corren lint y tests antes de versionar/publicar; postversion empuja el commit y el tag.

Licencia

ISC — ver LICENSE.

About

Template for creating a new npm package using typescript

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages