Monorepo-uri, Typescript, dependențe tranzitive și manageri de pachete (pnpm)

Așadar, tocmai am inițializat un monorepo folosind rush (pnpm).

Am o bibliotecă numită web-commons care are dependențe fastify și altele.

Am o aplicație backend numită my-app.

Vreau să folosesc anumite tipuri și module fastify în my-app, dar nu le pot importa.

Cum pot face ca dependențele web-commons să fie incluse tranzitiv în dependențele my-app?

Știu că o parte a problem

Citeste mai mult →

pachetele private pnpm din workspace scrise în TypeScript: să expunem src sau dist?

Am un monorepo compus în principal din cod TypeScript gestionat folosind pnpm și avem multe dependențe între pachetele din spațiul de lucru (de exemplu, pentru pachete de bibliotecă). Aceste pachete sunt private pentru acest spațiu de lucru și nu sunt niciodată publicate independent. De obicei definim pachetul astfel:

{ "name": "my-library", "license": "UNLICENSED", "private": true, "main": "dist/index.js&q

Citeste mai mult →

docker - Dockerizează un monorepo MERN în Typescript care folosește spații de lucru pnpm

Am un proiect cu următoarea structură de foldere, este un monorepo TypeScript care are două aplicații (client și API) și o bibliotecă partajată (shared), atât backend-ul cât și frontend-ul depind de biblioteca partajată. Și vreau să dockerizez acest proiect.

my-monorepo/ |-- api/ | |-- src/ | |-- package.json | |-- tsconfig.json | | |-- client/ | |-- src/ | |-- package.json | |-- tsconfig.json | | |-- shared/ | |-- src/ | |-- package.json | |-- tsconfig.js

Citeste mai mult →

material ui - De ce se plânge TypeScript când folosesc pnpm?

Încerc să migrez de la yarn la pnpm, dar m-am lovit de o mică problemă și nu sunt sigur în ce direcție să merg. Nu am încercat încă să schimb setările legate de hoisting (aș prefera să nu o fac dacă e posibil), dar încerc să înțeleg de ce asta îmi cauzează o problemă.

Am o mică funcție util

Citeste mai mult →

typescript - Cum să declanșezi construirea pachetelor automat atunci când folosești pnpm install?

Proiectul nostru folosește pnpm + workspace + typescript urmând standardul monorepo. După ce clonăm repository-ul, rulăm pnpm install pentru a instala dependențele și a lega pachetele locale între ele. Dar codul din fiecare pachet rămâne tot în modul sursă în fișierele .ts. Cum putem face ca fiecare pachet să ruleze automat pnpm run build pentru a avea un folder dist în interiorul pachetului atunci când folosim pnpm install prima dată.

Citeste mai mult →

node.js - Folosirea Prisma Schema într-un monorepo PNPM cu NestJS cauzând probleme ESM

Am creat un monorepo PNPM care are două aplicații NestJS (apps/api și apps/backend; ambele sunt exact la fel) și un pachet de bază de date Prisma (packages/database). Când rulez api cu start:dev, primesc următoarea eroare:

(node:69498) Warning: To load an ES module

Citeste mai mult →

Erori de compilare TypeScript la construirea Angular cu SSR + pnpm + preserveSymlinks

Aveam o aplicație Angular care se construia fără probleme. Singurele ciudățenii ale acestei aplicații sunt că are preserveSymlinks: true în angular.json și o bibliotecă locală instalată pentru dezvoltare folosind protocolul link:

Citeste mai mult →

Configurare funcțională pentru monorepo pnpm cu TypeScript, Vite și Rollup

Construiesc un monorepo folosind spațiile de lucru pnpm și am probleme să-l fac să funcționeze. Folosește Typescript, Vite pe front-end-uri și Rollup la microserviciile din backend.

Iată setarea:

package.json <== all dependencies reside here tsconfig.json pnpm-workspaces.yaml - commonlib/ package.json, tsconfig.json, rollup.config.js src/ ...interfaces, types etc--- - serverlib/ package.json, tsconfig.json, rollup.co

Citeste mai mult →

reactjs - Vite cu PNPM eșuează din cauza analizei importului pe pachetul `node_modules/.pnpm`

Folosirea PNPM și Vite într-un monorepo duce la următoarea problemă, nu am nicio idee ce fel de abominație sunt aceste [email protected]_@[email protected], probabil vreo ciudățenie PNPM. Există vreo modalitate de a dezactiva această verificare a

Citeste mai mult →

node.js - De ce PNPM marchează pachetul meu cu „version: link:” după comanda „pnpm install ...”?

Am un pachet, care este publicat în NPM. În acest pachet, am folosit același pachet ca una dintre dependențele sale, https://github.com/tal-rofe/cz-vinyl

Așa cum puteți vedea, numele pachetului este cz-vinyl, cu cea mai recentă versiune 2.5.0. Cele mai importante, fișierul meu package.json include: "cz-vinyl": "2.5.0", așadar folosesc pachetul ca o dependență.

În pachet, export câteva tipuri T

Citeste mai mult →