paint-brush
Cómo crear y publicar su primer paquete NPM privadopor@yuraabharian
7,339 lecturas
7,339 lecturas

Cómo crear y publicar su primer paquete NPM privado

por Yura Abharian1m2022/07/09
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

En este artículo, quiero mostrar cómo podemos crear fácilmente nuestro primer paquete npm privado. Con los paquetes privados de npm, puede alojar un código que solo usted y las personas con acceso pueden ver. Hablaremos más al respecto. Vamos a crear y publicar un paquete privado en GitHub, así que asegúrese de familiarizarse con los requisitos previos antes de comenzar este artículo. Hablaremos sobre cómo usar GitHub Actions para administrar y usar código privado junto con código público.

Company Mentioned

Mention Thumbnail
featured image - Cómo crear y publicar su primer paquete NPM privado
Yura Abharian HackerNoon profile picture

En este artículo, quiero mostrar cómo podemos crear fácilmente nuestro primer paquete npm privado .


Vamos a crear y publicar un paquete privado en GitHub , así que asegúrese de familiarizarse con los requisitos previos antes de comenzar este artículo. Entonces empecemos.


requisitos previos:



¿Qué son los paquetes npm privados y dónde se pueden usar?


  • Con paquetes de npm privados, puede alojar código que solo usted y aquellos con acceso pueden ver, lo que le permite administrar y usar código privado junto con código público en sus proyectos.


Estructura del proyecto


 math-lib/ --.github/ --workflows/ --main.yml --build/ this is autogenerated folder --src/ --app.ts --types/ --index.d.ts --.gitignore --package.json --tsconfig.json


Parte 1: Creación de un paquete npm privado


Paso 1: Inicie un proyecto de Node.js con TypeScript.


Nota: Puede aprender cómo hacer esto siguiendo este artículo Cómo configurar un Node Express con TypeScript o simplemente puede clonar este repositorio https://github.com/YuraAbharian/node-express-typescript


Paso 2: Ahora vamos a crear flujos de trabajo de GitHub Actions.



Agreguemos algunas configuraciones:


 name: Node.js Private Package on: push: branches: - master jobs: publish-gpr: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: '14.x' registry-url: 'https://npm.pkg.github.com/' - run: npm install - run: npm run build - run: npm publish env: NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}


Nota : Recuerde GITHUB_TOKEN, hablaremos más sobre esto un poco más tarde.


Paso 3: Vamos a crear/actualizar el archivo src/app.ts


 export function sum(a: number, b: number): number { return a + b; } export function minus(a: number, b: number): number { return a - b; } export function divide(a: number, b: number): number { return a / b; } export function multiple(a: number, b: number): number { return a * b; }


Paso 4: Ahora necesitamos declarar un módulo para nuestro paquete


  • Cree un directorio de types en la raíz de su proyecto


  • Cree un archivo index.d.ts en el directorio de types


Agregar tipos de declaración para este módulo


 declare module "@GITHUB_USERNAME/PACKAGE_NAME" { function sum(a: number, b: number): number; function minus(a: number, b: number): number; function divide(a: number, b: number): number; function multiple(a: number, b: number): number; }


Nota:

- GITHUB_USERNAME es tu nombre de usuario de github


- PACKAGE_NAME es el nombre de tu paquete privado


Ejemplo: "@yuraabharian/math-lib"


Paso 5: Trabajemos en el archivo package.json


 { "name": "@GITHUB_USERNAME/PACKAGE_NAME", "version": "1.0.0", "description": "", "main": "./build/app.js", "author": "", "license": "ISC", "types": "./types/index.d.ts", "publishConfig": { "registry": "https://npm.pkg.github.com/" }, "repository": { "url": "git://github.com/GITHUB_USERNAME/PACKAGE_NAME.git" }, "scripts": { "build": "npx tsc" }, "devDependencies": { "@types/node": "^18.0.0", "typescript": "^4.7.4" } }


Ejemplo: git://github.com/yuraabharian/math-lib.git (este será un enlace a su repositorio de GitHub)


Nota: estos campos @GITHUB_USERNAME/PACKAGE_NAME son los mismos que en el Paso 4


Paso 6: configuremos nuestro entorno de repositorio antes de enviar el código


  • En el Paso 2 te pedí que recordaras GITHUB_TOKEN porque esta variable es muy importante.


  • Ir al GitHub Repository - Settings


Repositorio de GitHub - Configuración



Paso 7: luego ve a Secrets


Configuración - Secretos

Paso 8: Actions abiertas


  • Haz clic New repository secret


Agregar GITHUB_TOKEN


Obligatorio: siga este enlace https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token para generar un nuevo token.


Nota: Guarde el GITHUB_TOKEN en otro lugar porque los necesitaremos en la Parte 2 de este artículo .


Nota: Otorgue solo acceso de write:packages para este token


escribir: paquetes



Paso 9: ahora envíemos nuestro código a GitHub


Paso 10: Abra el Repositorio → Acciones y debería ver que su paquete ha sido implementado


Comportamiento



Paso 11: Para encontrar su paquete, vaya a su perfil de GitHub → Paquetes


Paquete


Conclusión de la primera parte: en este punto debería ver su paquete implementado


En la segunda parte de este artículo, aprenderemos cómo instalar un paquete privado porque requiere algunas acciones, además de npm install package .

Parte 2: Instalación y prueba

Paso 1: configurar el proyecto Node.js


Nota: Puede ver cómo hacerlo en la Parte 1 → Paso 1


Paso 2: Luego, en la raíz del proyecto, instale todo su paquete. Puede tomar el enlace a su paquete mediante el perfil de GitHub → Paquetes → math-lib (este es el nombre de su paquete)


el paquete math-lib


Paso 3: ahora ve al archivo src/app.ts y actualízalo


 import express, {Application, Request, Response} from 'express'; import {sum, minus, multiple, divide} from '@yuraabharian/math-lib'; const app: Application = express(); const PORT: number = 3001; app.use('/sum', (req: Request, res: Response): void => { res.send(`RESULT: ${sum(5, 2)}`, ); }); app.use('/minus', (req: Request, res: Response): void => { res.send(`RESULT: ${minus(2, 2)}`); }); app.use('/multiple', (req: Request, res: Response): void => { res.send(`RESULT: ${multiple(12, 2)}`); }); app.use('/divide', (req: Request, res: Response): void => { res.send(`RESULT: ${divide(10, 2)}`); }); app.listen(PORT, (): void => { console.log('SERVER IS UP ON PORT:', PORT); });


Nota: tenga en cuenta que estoy importando math-lib desde mi repositorio @yuraabharian/math-lib para que su plantilla se vea como @GITHUB_USERNAME/PACKAGE_NAME


Paso 4: Ejecute su proyecto npm start


 node-express-typescript % npm start > [email protected] start > npx tsc && node build/app.js SERVER IS UP ON PORT: 3001


Paso 5 : Vaya a su navegador y abra http://localhost:3001/sum


/suma punto final


Esto funciona, así que ahora probemos todos los métodos:



/punto final múltiple


/menos punto final


/dividir punto final


Resumen: en este artículo, creamos y probamos su primer paquete npm privado, espero que haya disfrutado mi artículo. Si tiene alguna pregunta, puede contactarme por correo electrónico, LinkedIn o en los comentarios. Los mejores deseos