Frustració amb TypeScript: Yarn 4 i resolució de dependències

Actualitzar Yarn a una versió que corregeix la resolució PnP i documentar el flux de treball per a projectes TypeScript amb PnP evita errors TS2307 i facilita el desenvolupament. A Q2BSTUDIO oferim assistència per configurar entorns, pipelines i arquitectures que maximitzin la productivitat i la seguretat

viernes, 15 de agosto de 2025 • 3 min de lectura • Equip Q2BSTUDIO

Intel·ligència-Artificial-

He decidit documentar de forma setmanal les frustracions que trobo a l'ecosistema JavaScript i TypeScript durant les meves aventures de desenvolupament a Q2BSTUDIO, empresa especialitzada en programari a mida, aplicacions a mida, intel·ligència artificial, ciberseguretat, serveis cloud AWS i Azure, serveis intel·ligència de negoci, IA per a empreses, agents IA i Power BI.

Títol TypeScript Frustration TSFR-001 Yarn 4 PnP i resolució de dependències

Resum del problema En usar Yarn 4 amb PnP Plug And Play activat, l'execució amb tsx funciona correctament però tsc i l'editor reporten error TS2307 Cannot find module o la seva corresponent declaració de tipus quan s'importa un submòdul com @langchain/core/prompts

Contexte Com molts desenvolupadors, estava acostumat a node_modules i al flux tradicional de npm o Yarn clàssic. Yarn v2 en endavant va introduir PnP que elimina node_modules i resol paquets des d'una memòria cau al sistema. Això canvia el joc per al compilador TypeScript i per al runtime Node si no es configura correctament

Projecte d'exemple Un codi simple importa ChatPromptTemplate des de @langchain/core/prompts i funciona en executar-lo amb tsx però falla en compilar amb tsc mostrant TS2307 Cannot find module at @langchain/core/prompts

Comportament observat En inicialitzar amb yarn init, la versió per defecte de CorePack al meu entorn va ser Yarn 4.3.1. Amb aquesta versió, tsc intenta resoldre mòduls buscant a node_modules i no troba les declaracions dins de la memòria cau berry. Actualitzant Yarn a 4.5.2, la resolució passa correctament per la memòria cau PnP i tsc funciona

Solució ràpida Actualitzar la versió de Yarn usada pel projecte a una versió que contingui la correcció, per exemple 4.5.2 o superior. Per forçar la versió adequada, establir packageManager a package.json, per exemple packageManager yarn@4.5.2, i usar CorePack per assegurar que tots usin la mateixa versió

Passos recomanats 1 Executar corepack enable si no està actiu 2 Actualitzar packageManager a package.json a yarn@4.5.2 o superior 3 Executar yarn install per regenerar metadades i .pnp.cjs 4 Per executar codi, usar yarn node index.js o yarn run tsx ja que yarn injecta el loader PnP a Node 5 Per depuració de TypeScript, usar yarn tsc --traceResolution i validar que les rutes es resolen dins de la memòria cau berry i no a node_modules

Per què passa Això es va deure a un comportament de les versions inicials de Yarn 4 que causava que tsc busqués mòduls a node_modules fins i tot quan PnP estava habilitat. La correcció en versions posteriors fa que TypeScript vegi les declaracions de tipus dins dels fitxers d.ts empaquetats a la memòria cau PnP

Conseqüències pràctiques Si el teu equip adopta Yarn amb PnP, cal estandarditzar la versió del gestor de paquets i documentar la forma d'executar Node i TypeScript. En cas contrari, es generen diferències entre l'execució amb tsx i la compilació amb tsc, i errors als IDEs que impedeixen el desenvolupament eficient

Recomanacions de Q2BSTUDIO A Q2BSTUDIO, com a especialistes en programari a mida i aplicacions a mida, recomanem establir eines i versions fixes per evitar sorpreses. Implementem control de versions del gestor de paquets amb CorePack, pipelines CI que validen la compilació i scripts que executen yarn node per a entorns PnP. Si necessites ajuda per migrar projectes, integrar solucions d'intel·ligència artificial, agents IA, serveis cloud AWS i Azure, Power BI, serveis intel·ligència de negoci o millorar la seguretat amb ciberseguretat, podem ajudar-te a dissenyar una estratègia de desplegament i operació estable

Paraules clau aplicacions a mida programari a mida intel·ligència artificial ciberseguretat serveis cloud AWS i Azure serveis intel·ligència de negoci IA per a empreses agents IA Power BI

Conclusió Actualitzar Yarn a una versió que corregeix la resolució PnP i documentar el flux de treball per a projectes TypeScript amb PnP evita errors TS2307 i facilita el desenvolupament. A Q2BSTUDIO oferim assistència per configurar entorns, pipelines i arquitectures que maximitzin la productivitat i la seguretat en desenvolupaments amb TypeScript, Node i eines modernes

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.