Zoltan Kochan - PNPM and the Future of Package Management

Durée: 45m19s

Date de sortie: 21/09/2025

This week we talk to Zoltan Kochan, the lead maintainer of PNPM, a package manager for JavaScript. PNPM revolutionized the way we install dependencies in the JavaScript ecosystem with it's speed and focus on DX. Come join us as we talk about the origins of PNPM, the technical details of how it works, and the future of package management.

J'ai trouvé ce projet PNPM et depuis que ma vie a changé pour le meilleur,
j'ai hâte de le solider.
Mais j'ai spenti plusieurs heures pour faire ça fonctionner.
Mais maintenant j'ai hâte de le faire fonctionner.
Bonjour, bienvenue à DevTools FM.
C'est un podcast sur les outils de développeurs et les gens de la make-up.
Je suis Andrew et je suis le host de Micah.
Salut tout le monde.
Aujourd'hui, nous sommes vraiment excitées de voir Zoltan.
J'ai été avec Zoltan, c'est un des créateurs.
Je pense que le lead de ce projet de PNPM,
c'est un grand plus grand.
J'ai utilisé PNPM pour un temps.
C'est mon de facto.
J'ai vu depuis les jours de la fête,
ce qui me semble toujours de nouveau.
Mais je pense que dans la histoire relative, ce n'est pas trop long.
Nous sommes vraiment excitées de vous avoir regardé.
Et avant de nous en parler, nous aimons juste entendre un peu plus de vous.
Alors, vous voulez parler de vous-même un peu plus?
Bien sûr. Merci pour votre soutien.
Je suis heureux de voir que vous aimez PNPM.
Je suis Zoltan, je suis dans ma thème de la thème de la thème.
J'ai deux enfants.
J'ai étudié la mathématisation de la mathématisation.
Puis j'ai jointé un certain nombre d'outils en compagnie.
Je travaillais principalement avec les technologies.
Mais j'ai vraiment aimé Linux et l'office d'office.
Je suis à ma prochaine compagnie, à JustAnser.
J'ai regardé Node.js.
Je voulais être un contributaire populaire d'office d'office.
Je voulais créer d'office d'office pour quelques années.
Et pour contribuer.
Puis j'ai trouvé ce projet PNPM.
Et depuis que j'ai changé de vie pour le meilleur.
Pour quelques années c'était très difficile.
Parce que j'ai dû combiner mon travail en temps complet.
Et la maintenance d'office d'office de PNPM.
Mais ça m'a vraiment aidé à booster ma vie.
Et à trouver un meilleur travail.
Et à faire ce que j'aime.
Donc maintenant je travaille sur BitCloud.
Ce qui est une alternative de GitHub.
Ce qui vous aide à développer des softwares composables.
Et à Bit I work on dependency management.
Et ils me soutenent sur les stuff.
C'est génial.
Je suis heureux que vous avez montré un travail qui aide à soutenir votre travail.
C'est quelque chose que nous parlons beaucoup de.
On parle de la consommation de la consommation de la consommation.
Et il y a beaucoup de choses qui sont indépendantes.
Pour pouvoir travailler sur quelque chose en temps complet.
Et les autres sont encore en train de faire la route de VC.
Ou de faire ce que vous faites.
Et de travailler pour quelqu'un qui vous aide.
Cool, on va en parler un peu.
C'est intéressant que PNPM a commencé un certain amalgamation de différents projets.
Il y a un problème qui vous a commettu sur le projet de l'IED de Alexander Grill.
Et il y a un crew de RECA-style qui est dans l'un des deux.
On a commencé de collaborer.
Et puis PNPM a commencé.
Cancelons-nous un peu sur le lore ?
Comment ça allait se passer ?
C'est une partie qui a commencé avant moi.
Je pense que...
La façon dont j'ai trouvé PNPM était...
On a eu un grand monorepo à Just Answer.
Je ne sais pas si vous avez parlé de Just Answer.
C'est une web site de Q&A qui a vérifié les experts qui ont répondu aux questions.
J'ai travaillé à Just Answer et on a eu un grand monorepo pour les components de Frontend.
La façon dont ça a travaillé était qu'il y avait une registre dans l'office San Francisco.
Nous étions installés en Europe.
Et c'était très lent.
Et aussi, c'était vraiment...
Je pense que c'était pas sophistiqué de la structure monorepo.
À ce moment, c'était juste...
une direction avec des milliers de formes de package.
Chaque formes de package avait un son de package.
Et il y avait un script shell qui se dévastait en PNPM installé dans chaque single formes.
Et ce n'était pas un grand monorepo à ce moment.
Mais l'installation était encore en train de prendre 30 minutes.
Et l'usage de disk space était fou.
Je n'ai jamais eu de disk space sur mon computer.
Je pense que j'étais en train de chercher quelque chose de ce qui était probablement la façon dont j'ai trouvé PNPM.
J'ai commencé à lire sur ceci.
Sur les sim links.
Sur ce nouveau layout de modus de mode.
Et sur la vitesse.
Je pense que la vitesse était la main de la question.
Je probablement m'a trouvé Google sur comment faire installation plus vite.
Et c'est vrai que la PNPM était très rapide.
En ce moment, il était possible d'être plus rapide que la PNPM.
Peut-être même 15.
Je l'ai testé localement.
Et c'était incroyable.
30 minutes ont été 2 minutes.
Ça a fait mon cerveau.
Et comme je l'ai mentionné, je voulais être un personne d'open source.
Parce que je n'ai pas de temps pour intervier.
Je n'aime pas intervier.
Je voulais construire ma propre marque pour le faire plus facile.
Et j'ai commencé à regarder la PNPM.
Parce que même si c'était très rapide,
ce n'était pas le travail après installation.
C'était comme un concept de prouve.
Et beaucoup de choses n'étaient pas encore implémentées.
Je pense que c'était en 2016.
Et j'ai commencé à contribuer, à fixer les bacs.
Et après 3 mois, le DECO Stakrus m'a donné toutes les prévénéances.
Parce qu'il n'a pas voulu travailler sur ça.
Et comme vous l'avez mentionné, c'était comme le projet qui a initialement été implémenté.
C'était une idée simulée.
Donc l'ID a été créée par Alexandre Google.
Et la raison qui a été créée, c'était parce qu'il n'a pas l'air de la marque de mode hoistée.
Que l'onit de la PNPM a choisi de changer de mode en version 3.
C'était pendant beaucoup de temps.
Probablement, la plupart des gens ne le connaissent pas.
Mais la PNPM 2 a eu une structure de mode née.
Et il a eu beaucoup d'issues.
C'est principalement parce que l'issue de longs-path sur Windows.
Parce que sur Windows, vous avez un limiter au nombre de file.
Et c'était comme, je pense, au début, c'était pas un issue.
Parce que la PNPM n'était pas si grande.
Mais quand vous avez commencé à avoir des centaines de dépenses,
ça s'est rapidement escalé.
Donc ils avaient dû le voir, et ils ont vécu avec le layout de mode flat mode.
Et c'est quand ces alternatives, les premières alternatives, ont appuyé.
Le soleil de 2016 a vraiment été le soleil de Monarepas.
Parce que c'est aussi quand je l'ai mis dans le jeu.
C'est drôle parce que le premier épisode que nous avons eu sur DevTools FM
était en train de parler de toutes nos choix de picks pour monarepo.
Et à ce moment, la PNPM n'a pas vraiment étranger mon avis.
Dans ce summer de 2016, je n'ai jamais trouvé la PNPM.
Je suis directement dans le Yarn.
Et avec Yarn v1, je me sentais que,
en fonction de la structure de monarepo de la PNPM,
le gain de la structure de monarepo était énorme.
Et on a vu que ça a vraiment évoqué les monarepo pour nous.
Mais en ce moment, vous avez dit que vous avez été dédiés avec la structure de Yarn
et ce que cela a dédié.
Vous pouvez aller un peu dans ce moment,
et comment la PNPM fixe ce que vous avez vu avec Yarn?
Je pense que nous sommes un peu en train de se mélanger avec la timeline.
Parce que, peut-être que ce n'était pas 2016.
Je ne sais pas si vous et moi sommes d'accord.
Parce que le Yarn a été en train de travailler en partage pendant six mois,
environ une demi-année, après que je commence à travailler sur la PNPM.
Donc, c'était déjà dans le développement,
quand j'ai trouvé la PNPM, mais ce n'était pas public.
Je ne savais pas que personne ne savait pas.
Et je suis terrifiant quand Yarn a été public,
parce que j'ai spent beaucoup de temps sur la PNPM,
une demi-année, et Yarn a vraiment été en train de se mélanger.
En quelques jours, il y a eu une grande traction dans la communauté.
Je pensais que la PNPM était terminée,
j'ai été un peu déprimé.
Je pense que la PNPM était encore plus rapide.
C'était beaucoup plus rapide que la PNPM,
mais encore plus rapide que la PNPM.
Peut-être que c'était plus stable que la PNPM.
Mais parce que de la vitesse et de la façon différente,
j'ai gardé de travailler sur la PNPM,
même après que la PNPM s'est formée.
Pardon, mais c'était une question de monlit.
Je me disais comment vous avez été détaillés avec Yarn.
C'est une question de plus en plus,
parce que avec Yarn v1,
pendant l'imprimation de la structure de la PNPM,
il n'y avait pas de méthode cash,
que la PNPM et la PNPM 2 se sont formées.
Je me sentais que le moment de la vraie aha,
c'était comme, je vais aller à Barry,
ou je vais à la PNPM, et la PNPM était la façon pour moi.
Je pense que je suis détaillé,
parce qu'ils ont choisi les modèles flat.
Oui, je pense que c'est incroyable que vous puissiez au moment,
et que vous savez que je vais se couper et que je vais construire.
Et après toutes ces années,
c'était comme, si Yarn est venu en 2017,
ou quand même, c'était encore une fois.
C'est encore une fois,
et pour me dévalider votre travail,
je ne sais pas quel qui a été,
mais il y a encore un Yarn,
et il y a encore des folk qui utilisent la PNPM,
parce qu'ils sont là,
et la défaut, quand ils sont en mode de charling,
mais comme les autres,
c'est comme la PNPM,
et c'est comme, almost become table stakes pour la PNPM,
et je pense que vous avez fait beaucoup de travail
pour faire ça, c'est un grand travail.
En regardant ça,
c'était un peu plus tard pour atteindre le 1.0.
Il s'est fait un effort sur des deux ans,
il y avait beaucoup de push,
et vous avez écrit
comment la structure de la mode de charling
de Simlink,
qui était une particularité.
Qu'est-ce qui est le voyage
dans cette structure de charling
ou les réinitialisation
de la structure de la mode de charling ?
Et que sont les grandes difficultés ?
Je pense que le plus grand challenge,
je sais que le plus grand challenge
était de créer et de résoluer les dépansements de pierre,
parce que, vous savez,
quand une dépendance a une dépendance de pierre,
vous pourrez avoir
des applications de cette package,
de cette dépendance,
parce que ça peut,
donc cette dépendance de pierre
peut être résolue
de différentes versions de la dépendance de pierre,
à différents places de la graphite de dépendance.
Et si vous ouvrez
le directeur dotpnp
dans vos modules de mode,
vous pouvez voir que c'est
une structure flat
où chaque directeur
est le nom de la package
et la version de la package.
Mais, si
la package s'élève sur les dépansements de pierre,
vous verrez aussi
comme un liste
de les dépansements de pierre.
Donc,
si la dépendance a des dépansements de pierre,
il peut avoir
des duplications
qui n'est pas bon,
vous devez
essayer de réduire
ceci, mais nous devons supporter.
Et
je ne suis pas sûr
que la première version
a travaillé complètement correctement
avec les dépansements de pierre,
parce que
tout le monde
a de plus de dépansements de pierre.
Et je pense que
la première fois
que la version de pierre
a travaillé complètement correctement
c'est la version 9.
Et la raison pour laquelle c'est si difficile
c'est parce que
les dépansements de pierre
peuvent avoir des dépansements de leur propre.
Donc, c'est une histoire récourciative.
Et basicement, nous devons
construire un graph de dépansements de pierre
et puis écrire ce graph
et utiliser
le nom direct de
dotpnpm.
Et aussi,
les dépansements de pierre
peuvent être aussi utilisés dans les dépansements de pierre
ou des dépansements de pierre, donc c'est très complexe.
Oui, je suis certainement au-delà de cette complexité.
Les dépansements de pierre,
je dirais que, à part ce que je suis utilisé
c'est un truc difficile de faire,
mais le nom d'appliquer
c'est le plus difficile de faire.
C'est un truc de plus en plus,
où vous pouvez voir comment les pierres
se résolvent très facilement
et les dépansements de pierre
et si ce n'est pas tout ça,
c'est presque impossible de débugner ces issues.
Oui, je pense que
ce que vous avez besoin
c'est de débugner
votre graph.
Après que vous installez,
vous avez des outils
pour vous aider à
voir ce qui se passe dans le module de mode.
Parce que, maintenant,
vous pouvez faire un liste de PNPM,
mais c'est très clatté.
Ou vous pouvez
manually essayer de
lire votre file de lock, mais c'est
difficile.
En fait, je travaille maintenant sur un
feature qui peut aider avec ça.
Et depuis que vous avez pensé à ça
beaucoup, pensez-vous que les dépansements
étaient un erreur ?
Vous pensez qu'ils sont nécessaires ?
Est-ce que c'est un peu de complexité ?
Nous avons mis nos propres pas et nous avons
trompé sur le terrain ?
Je pense que probablement ils sont nécessaires.
Je ne sais pas si on pourrait
réarchitecter les outils de pierre
ou peut-être que ça serait possible.
Je ne pense pas beaucoup
parce que c'est tellement important
pour les écosystèmes que ça serait impossible
de changer.
Et en fait, le challenge était
maintenant que je suis sur le terrain,
je suis heureux que je pouvais le changer.
Mais je l'ai spenté
plusieurs heures pour faire
ça fonctionner. Mais maintenant je suis heureux
que ça fonctionnerait.
Peut-être que
toutes ces outils de pierre sont nécessaires.
Peut-être que ce que nous pouvons faire
c'est limiter un peu.
Parce que probablement
parfois ils ne sont nécessaires
mais les gens ne l'utilisent pas.
Ils n'utilisent pas.
Je ne comprends pas pourquoi
les outils de pierre sont nécessaires
pour les outils de pierre
de leur propre.
Et pourquoi des outils de pierre
de 10 ou plus.
Donc oui.
Oui, je me sens
que les gens n'utilisent pas
les outils de pierre.
C'est comme si les gens se trouvaient
et qu'ils aient des projets.
Et aussi, ils sont très hard.
Parce que
ils ont publié un range
et puis
c'est un complet chaos.
Oui, c'est sûr.
On va nous expliquer un peu
et parler
des députés de pierre de pierre.
Vous avez parlé
de la différence que la pierre de pierre
fait en comment la structure est de la mode.
Donc sous la coude, vous avez
un modèle de modèles de contenu
adaptable.
Donc pratiquement, comment ça fonctionne?
Vous avez ce point de direction de pierre de pierre
et comment ça se résolve?
Donc
on a
deux laires.
Le point de direction de pierre
est quelque chose que nous appelons
le store virtual.
Un autre s'est aussi suggéré
de le nomner
un store isolé.
Je pense
encore en pensant
si c'est une bonne idée de
le renomner.
Le nom de
le store virtual a été choisi parce que
il utilise des cimes.
Donc dans ce
directeur, comme je l'ai mentionné
chaque version de chaque
dépendance a sa propre
direction isolée.
Et si vous ouvrez ce directeur,
chaque single directeur
aura un
modèle de modèles de sub-directeur.
Et dans ce directeur
vous avez
le directeur
pour ce package
avec des files réels
et tous les autres
files dans ce directeur

sera des cimes de links
pour autres directeurs dans le folder dotpnpn.
Donc de cette manière
vous vous en avez
un test
mais en un de l'aider.
Donc vous ne pourrez pas
avoir de longues questions.
Le
store de contenu adressable
n'est pas dans le dotpnpn
il est dans un central
de la location sur le disque
et ce sont
les files de toutes les
dépendances extractées
et ces files
sont stored par
les contents de chaque somme.
Par exemple si vous avez
deux versions de Loadeesh installées
sur votre système
probablement
les files sont les mêmes
sur les deux versions.
Donc en ce cas
les files similaires
seront stored en 1 time
sur le disque
et les différences
seront les mêmes.
C'est très efficace et
c'est utilisé par beaucoup de tools
dans le programme.
Et le moyen qui fonctionne
c'est que les dépendances
dans votre projet dotpnpn
sont
pointées à ce
central de la location
sur le disque,
à la store de contenu adressable
et elles sont pointées
avec les hardlinks.
Ou si le
système file
apporte le copyright
alors elles ont les hardlinks.
Parce que les hardlinks ont un disadvantage
si
vous avez
deux projets
et que les deux projets utilisent Loadeesh
si vous voulez
débarquer quelque chose, vous allez
dans vos modules et vous vous
faites
une change dans votre dépendance
dans Loadeesh.
Vous faites ce change dans le projet 1
mais il
sera changé dans le projet 2
parce que c'est un hardlink
donc c'est le même file
dans chaque place.
On révalide
les files quand vous installez
encore, donc on
va changer le fait de l'état initial
mais
l'approche de la batterie est de
utiliser ces hardlinks
parce que avec le hardlink
quand vous faites le change
le
système file automatiquement
copie le file
et saube la version modifiée
dans vos modules.
Donc la histoire de concept
n'est pas changée
et vous avez une notification
dans ce single place.
C'est
ça.
Vous avez aussi récentement
introduit un feature
d'expérience de la store globale
un concept parallèle
à la store de contenu.
D'accord, alors que je comprends
plutôt que
ce file dot.pmpm
qui est local
dans vos modules, c'est
comme une référence globale
où tout est link.
Qu'est-ce que vous avez fait pour ajouter ça ?
Oui, c'était
mon gif
depuis le début
et en
l'arrivée de pmpm
j'ai utilisé
mais c'était seulement en travaillant
parce qu'on n'a pas un file de blog
et je serais malade.
Donc
ce feature est appelé
la store globale
vous pouvez essayer
d'enlever le set.
Ce que ça fait
c'est que ça se démarre
de votre direction dot.pmpm
de vos modules de mode
à une location centrale
dans le disque.
Mais parce que c'est en train
de se faire plus complexe
parce que
dans le scope
d'un projet
chaque dépendance peut avoir
seulement un set de sub-dépendances
donc si vous avez
un webpack 1.0 installé
et il y a un minimum
avec un range
dans votre projet
le webpack
sera toujours résoluant à une version de minimum
mais dans un autre projet
sur le même computer
vous pourrez avoir
un install executed en plus tard
et maintenant vous avez
un webpack
avec un minimum version 1.2.0
Donc localement
ce n'est pas un souci
mais si vous vous mettez dans la store
à une location centrale
vous avez besoin de 2 webpacks
un webpack
avec un minimum 1.0
et un autre avec un minimum 1.2.0
Donc si vous
vérifiez
cette store globale
vous verrez que
en plus d'avoir des directrices
avec seulement
des noms de package et des versions de package
vous avez des directrices avec les noms de package
versions de package et
une haine de long
et cette haine
est calculée par le grapho de la dépendance
de cette package
C'est un peu similaire
à ce que nous faisons
avec des dépendances de la pièce
mais maintenant c'est pour
chaque type de dépendance
pas seulement pour les dépendances
et ce
j'espère vraiment
que vous pourrez faire
comme le default
à un moment parce que ça fait
une installation locale super vite
sur le CI
ce n'est pas vraiment différent
c'est parce que sur CI
vous avez
une machine émplique
donc vous n'aurez pas
cette haine de long
pour votre store
mais par exemple
vous avez plusieurs projets
dans votre folder source
il y a
une grande chance
que les dépendances
sont déjà installées
par un autre projet
donc en lieu de
toutes ces
opérations de file
pour créer
ce lot pnpm folder
de scratch
vous avez besoin de créer
quelques semelettes
pour cette direction
et juste pour les dépendances
de votre projet
cool
en fonction de
des autres choses
pnpm est vraiment pas un peu
un peu de très bonnes
des features centraires
et nous avons déjà couvert un peu de ces
espaces de travail
je l'aime bien que ça consomme
des workflows de monorepo
donc nous n'avons pas de
des tools de third party pour se solver
catalogues c'est aussi
j'adore catalogues
ça fait de la management
de monorepo dépendances plus facile
mais vous avez récentement introduit un nouveau feature
qui s'appelle
des dependencies config
vous pouvez nous passer à ce qu'ils ont et ce qu'ils ont vu
oui, des dependencies config
j'étais inspiré
par bith
pour les dependencies config
parce que dans bith
nous avons des compétences
et chaque component
a un component d'environnement
qui contient
toutes les
configurations pour ces compétences
et vous avez
c'est vraiment facile de
partager votre configuration entre
vos compétences
quand vous travaillez avec des repositories
c'est vraiment difficile de faire
vous avez de la base de
beaucoup de files
donc je pensais que c'était une idée cool
et peut-être que nous pouvons
faire ça plus simple pour les utilisateurs
pour
partager les settings
entre les repositories
à moins que les configs
de pnpm
vous pouvez avoir une meilleure solution
pour cela
que de copier les files de pnpm

donc les dependencies configs
sont un nouveau type
de dépendance
avec beaucoup de limitations
comme ces dépendances
elles ne peuvent pas
avoir des dépendances de leur propre et elles ne peuvent pas
avoir des scripts post-installés
et ces limitations
sont nécessaires
pour faire
leur installation de ces packages
très vite
parce qu'elles sont installées
avant
la installation régulière
à la very start
de la execution de la CLI
et
parce que c'est tellement plus tard
dans le processus
vous pouvez utiliser
le plugin pour pnpm
vous pouvez
changer l'objectif de configuration
de pnpm de ces dépendances
par exemple
si votre organisation
a des
des settings spécifiques
que vous utilisez pour pnpm
parce que par default
pnpm est un peu
permissif mais
il y a des
des settings que vous pouvez utiliser pour faire cela plus strict
si vous voulez
faire cela
c'est vraiment facile de faire avec
cette dépendance de l'enquête
aussi
je pense que vous savez que
dans version 10
on a commencé à bloquer
la execution des scripts
par default
donc c'est vraiment
convainable d'avoir une dépendance de l'enquête
avec une liste de dépendances de la trust
que vous vous trustez dans votre organisation
ou même des catalogues
vous pouvez
vous avez mentionné des catalogues
donc vous pouvez
avoir
une dépendance de la configuration
avec tous les catalogues
et même les partager entre les postes
oui, ceci est un feature
et de pouvoir partager les patches
ça a vraiment été un grand
win pour les gens
surtout les patches
j'ai personnellement
travaillé sur un système de design
et un nouveau repos
de la restée de la code
que je travaille sur
donc si on veut
les patches pour certaines de nos dépendances
c'est un processus long
de tenter de couper la code
et de faire surement que c'est en sync
mais avec ce feature, c'est un truc du passé
oui, vous pouvez être très créatif
avec les choses que je n'ai pas
pensé
quand je suis venu avec le config
mais c'est tellement powerful
c'est vraiment
ça fait possible
pour changer PNPM
sans
changer PNPM
oui, c'est vraiment cool
je veux aussi vous donner un shout out
pour juste le feature de patch
notre premier guest
sur ce podcast c'est David Sheldrick
qui a écrit le patch package
il était un vieux collègue
de mine à Archie
patch package, c'est un fantastique projet
mais le boulot
pour PNPM a été
vraiment cool
c'est un des choses

pour mieux ou pour le worse
on se retrouve dans des situations où il ne marche pas
comme vous l'avez prévu
et que les options sont pourquées
ou on peut faire un autre tour
et le patch command est super
le petit DX
sur le patch feature 2 est vraiment bon
c'est de créer un nouveau patch
et de l'ouvrir dans l'adapter
et de l'accompagner
c'est une bonne expérience
j'apprécie vraiment
le plus grand chose c'est que je pense que
on utilise un patch version de patch package
PNPM
oh c'est incroyable
c'est très méta
c'est bien, tu l'as mentionné
dans version 10
PNPM, tu disais
des scripts de lifecycle
c'est comme le script de post-installation
par exemple
pourquoi ça a changé?
qu'est-ce que tu penses?
tu as entendu
des NX
les NX incidentes
ce n'est pas le premier incident
de ce type
j'ai perdu beaucoup de compte
et nous avons eu
4 ans de personnes demandant
des moyens pour limiter
la production de scripts
j'étais opposé
parce que je pensais
que
pourquoi ça ne se passe pas
parce que c'est un code













il n'y a pas de sécurité













je pense que c'est la 500
les packages les plus populaires
et les NX sont en fait
en ce moment
non
je faisais un poll
si les gens veulent
avoir la même version de PNPM
si ils veulent
faire
un poll



pour que les NX
puissent être en train de
avoir la même version
de PNPM
pour que les 500 packages









sont en train de
avoir la même version
de PNPM
pour que les NX
puissent être en train de
avoir la même version
de PNPM
pour que les NX
puissent être en train de


pour que les NX


puissent être en train de
avoir la même version
de PNPM

puissent être en train de
avoir la même version
de PNPM
pour que les NX
puissent être en train de




mais la exercice de kabocbare d'enquête siliconée numérique est un hardware d'engact Hearst on a fait un succès avec décision automate
des demandes de downloads par semaine.
Oui, ce que tu parles de c'est les packages de débat et de chocs.
Le radius de blast de ceci est tellement large.
Oui, pour cela, nous avons eu la décision de mettre le futur à 2 p.m.
Pour le faire, pour avoir un coût pour un package de release.
Pour exemple, un package de release doit être installé 3 jours plus tard.
Parce que ces vulnerabilities sont détectées très rapidement.
Je pense que les deux jours ont été détectés dans 5 minutes.
La question de la fin de la fin a été découverte en 1 heure.
Il y aura un coût, les plus grands vont installer les packages de débat.
Les packages sont détectées avant qu'elles soient retirées du registre.
Ok, donc tu as eu l'écosystème de la node.
Et quand tu fais des packages de node, elles peuvent être installées dans des places de multitude.
On a des apps d'électron, des apps native.
Il y a des gens qui ont des codes de store sur un NPM qui n'ont jamais été installés sur un site.
Quels sont les problèmes de compétition plus common que tu as trouvé en tentant de faire ces projets ?
Pour être honnête, il y a deux grands problèmes.
L'une avec les débat de la fin,
l'autre avec les usages de simlink, les modèles de sidement.
Je pense que avec Simlink, tout le monde s'en travaille.
Par contre, peut-être que l'électron n'a pas de problèmes avec Simlink.
Et il y a des work-rounds, je pense, avec ce que c'est appelé Metro.
Qu'est-ce que c'est un bundle pour l'électron ?
Facebook, Spundler, Metro.
Je pense qu'il y a un work-round pour Simlink.
Mais je pense que cette solution est de juste faire un PNPM installer les noix de base de la sidement.
Donc, PNPM utilise un élément qui est maintenu par Yarn pour Hoystein.
Et si vous utilisez PNPM avec des projets qui ne travaillent pas avec les noix de base de Simlink,
ou si le projet est réelé sur le phantom de base,
vous pouvez mettre le noix de base de Hoystein et ça va travailler.
Parce que c'est la même solution que ce que la création de PNPM avec Yarn.
La autre question, le phantom de base,
en initialisation de PNPM, nous avons eu beaucoup de ces problèmes.
Et c'était vraiment difficile de fixer ces problèmes.
Parce que certains projecteurs, ils croient que c'est bien de l'utiliser.
Donc, oui, je n'ai pas expliqué ce que les phantom de base sont.
Donc, quand un projet utilise un PNPM qui crée un modus flat,
votre code peut importe des noix de base qui sont dans la route de nos modus.
Donc, même si c'est une sub-dépendance, votre code va travailler.
Parce que le projet ne cares pas sur ce qu'il y a dans les packages.
Il cares juste ce qu'il y a dans les modus.
Donc, on appelle ça une dépendance de phantom.
Donc, si vous avez un webpack dans votre dépendance,
et que l'un de vos webpackes a un code minimisé,
et que l'un de vos webpackes a un code minimisé,
votre code peut importe des noix de base et ça va travailler.
Et ça va travailler même quand votre projet sera installé par PNPM,
parce que le target ne cares pas sur ce qu'il y a dans les modus.
Mais avec PNPM, comme je l'ai mentionné,
dans le point de vue de PNPM,
chaque dépendance est isolée dans sa propre sub-directeur.
Et dans cette sub-directeur, ce n'est pas un modus flat.
C'est un modus limité qui ne contient que la dépendance directe de chaque package.
Donc, si vous êtes importé en minimum dans votre package,
et que quelqu'un installe votre package par PNPM,
ça va se détruire avec le Node.js durant le temps de phase.
Parce que Node.js ne sera pas capable de résolver le minimum.
Mais oui, c'était...
Comme je l'ai mentionné,
pas tous les maintenanceurs sont souhaités fixer ces issues.
Donc, nous n'avons pas de choix,
mais nous devons ajouter des work-rounds
pour fixer sur notre site.
Ce que nous avons fait, c'était de créer un modus de mode
directeur à la route de PNPM.
Nous avons créé une structure de modus de mode.
Donc, si votre code dans votre projet ne peut pas importer ces sub-dependences,
mais que vos dépendances peuvent importer ces phantom-dependences,
parce que quand Node.js regarde les packages,
ça regarde dans chaque direction de repos.
Donc, ça va regarder dans le modus de modus de PNPM.
Donc, ça marche par défaut.
Vous pouvez en fait plus de le faire,
par le tourner de ce modus de modus.
Et si, dans beaucoup de cas,
des outils ne fonctionnent pas avec ce modus.
Je ne sais pas d'exemple d'un outil comme ça.
Mais dans ce cas, vous pouvez utiliser
les modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de modus de mod

Il y a aussi un changement. Il y a beaucoup de nouveaux runtimes. On déploie un JavaScript à un peu de nouveaux environnements. Il y a un mouvement très lent à l'intérieur de NPM. Mais il y a beaucoup de nouvelles registres.
Donc, quand vous regardez au cours de la prochaine quelques années, surtout quand vous pensez à votre travail sur PNPM, comment pensez-vous que le package et le JavaScript runtime space sont allés à changer et comment pensez-vous que ça va affecter votre travail ?
Comment ça va changer ? Je ne pourrais pas imaginer peut-être quelques plus de alternatives de registres parce que tout le mien est sur le côté de l'enregistrement. N'aura personne à payer pour le client.
Donc, je ne pourrai pas imaginer peut-être que ceux qui ont des compagnies derrière les clients, peut-être que ils vont avoir des motivations pour créer des registres.
Il y a aussi peut-être des compagnies qui ont des codes de run parce qu'ils peuvent faire leur CI plus vite avec le registre custom. Et ça fait que ça prend des logiques.
Je vais faire le travail sur PNPM pour une nouvelle langue, ou pour une nouvelle runtime. Donc, j'ai ajouté cette feature pour PNPM pour pouvoir manager les versions Node.
Je vais faire les versions Node. Je vais faire les versions Node. Je vais faire les versions Node. Je vais faire les versions Node. Je vais faire les versions Node.

Je vais faire les versions Node. Je vais faire les versions Node. Je vais faire les versions Node. Je vais faire les versions Node.

Je pense qu'il y a encore des possibilités sur le côté de l'enregistrement.
C'est intéressant. Ça fait partie de nos questions. Merci pour votre question. C'est un très intéressant de faire des choses sur PNPM.
Je sais que moi et Justin ont utilisé PNPM pour faire des choses lentement et sont vraiment heureux pour le travail que vous faites dans la communauté que vous soutenez.
Merci pour votre question et pour parler de ça.
Merci pour le travail.
Merci beaucoup, Lothan. Vous avez travaillé très bien et j'espère que vous pouvez continuer à l'enlever. Je sais que l'open source est souvent plus difficile.
C'est très compétitif. Je pense que vous avez déjà acheté quelque chose que je ne peux pas être heureux même si ça ne se fait pas.
Mais j'espère que ça ne se perd pas. Je sais que les projets sont en train de se faire pour des décennies. J'espère que PNPM sera un projet comme ça.
Je pense que ça va être cool.

Les infos glanées

Je suis une fonctionnalité encore en dévelopement

Signaler une erreur

devtools.fm:DeveloperTools,OpenSource,SoftwareDevelopment

A podcast about developer tools and the people who make them. Join us as we embark on a journey to explore modern developer tooling and interview the people who make it possible. We love talking to the creators front-end frameworks (React, Solid, Svelte, Vue, Angular, etc), JavaScript and TypeScript runtimes (Node, Deno, Bun), Languages (Unison, Elixor, Rust, Zig), web tech (WASM, Web Containers, WebGPU, WebGL), database providers (Turso, Planetscale, Supabase, EdgeDB), and platforms (SST, AWS, Vercel, Netlify, Fly.io).
Tags
Card title

Lien du podcast

[{'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]

Go somewhere