This is the full transcript of Turborepo : Présentation et avantages pour un SaaS, published on YouTube by SaaS Makers. Every paragraph carries the moment it was spoken, so you can click any line to jump straight to that point in the video, search the whole thing for a word, or copy it out.
0:00bon les amis aujourd'hui je voulais vous parler d'une technologie que j'utilise depuis 3 4 mois et que j'adore je ne pourrais pas refaire un sas en fait sans l'utiliser je trouve que ça a été vraiment un énorme il y a eu un énorme avant après et surtout ça a eu un gros terme en terme de un gros gain en terme de productivité cette technologie ça s'appelle turboripo et c'est tout simplement en fait un un système qui va vous permettre de pouvoir on va dire construire votre projet dans un monoripo et surtout ça va venir avec beaucoup de fonctionnalités qui vousont F gagner un temps fou alors les monoripo c'est ce concept
0:32d'avoir absolument tout son projet SAS dans un seul horipo par exemple donc ça peut être on va voir t nos API on va voir toutes tous nos packag on va vooir aussi différents applications Web qu'on pourrait comme next ou next JS qu'on va tout avoir dans un seul unique ripo et l'avantage de ça c'est que ça va nous permettre du coup de gagner beaucoup en productivité alors turboripo ça fait pas que ça il y a aussi tout un système de cach pour le build je vous montrerai dans avec des exemples sur nous comment on l'utilise euh qui nous font gagner mais vraiment un temps fou et surtout en
1:01fait je dirais l'avantage de travailler euh dans un avec turboripo dans un monoripo par rapport à avant et je vois vraiment un énorme gain de de productivité de ma part c'est que l'expérience développeur elle est quand même vachement plus agréable vraiment c'est moi ça m'a convaincu euh je quand je vois comment je travaille avant et comment je travaille maintenant euh c'est vraiment beaucoup plus agréable de faire de cette manière là alors je sais qu'il y en a qui sont quand on leur dit monoripo ils ont direct les des alarmes qui s'allument euh faut savoir qu'il y a beaucoup d'entreprises aujourd'hui qui travaillent avec des monoripo comme
1:35notamment Google qui a sûrement le monoripo le plus long du le plus grand du monde avec des dizaines ou des centaines de millions de de lignes de code maintenant euh moi ce que je regarde c'est est-ce qu'un outil me rend plus productif et est-ce que l'outil améliore améliore mon mon code au quotidien tu vois c'est vraiment ça que je regarde le plus et en tout cas bah là on est dans le meilleur des mondes puisque en fait la promesse elle est complètement complètement résolue alors euh ce qu'il faut dire aussi c'est que turboripo c'est utilisé pour JavaScript et typescript tu vois comme ils disent la documentation elle est vraiment super
2:07clean donc hésitez pas à aller jeter un œil je vous montrerai moi plutôt les cas pratiques sur comment j'utilise ce sera plus plus concret pour voir un peu mais pour vous puissiez un peu avoir une idée si c'est intéressant pour votre SAS mais ce qu'il faut comprendre c'est que voilà je vais switcher donc là on peut voir dans un projet classique on a différentes on a un seul en fait et là ça contient vraiment tout le projet de the company Z API euh et le truc c'est qu'en fait vous pouvez voir que on a du coup euh toutes nos apps qui vont être définis ici donc
2:39no différents app qu'on utilise et notre next notre application next euh et on peut voir aussi qu'on a différents nos différents packages qui peut être là c'estd la config les datas qui datas qui peuvent être communes entre différents projets qui sont juste un des packag NPM euh les différents helpers aussi qu'on utilise c'est pour inclurit des fonctions en fait qui sont utilisées par différentes à la fois par la par plusieurs API et cetera et donc du coup qui sont externalisés de manière à l'écrire qu'une fois et éviter la duplication du code ce qui est un énorme un des un des points ultra importants en fait avec les menoripo c'est d'éviter la
3:11duplication du code et d'avoir une seule et unique config euh parce qu'en fait plus tuas duplication dans un projet plus c'est le début des des problèmes pour la simple et unique raison que va falloir maintenir tout ça et que en prenant le temps de maintenir va falloir écrire plusieurs fois les tests et cetera enfin là on a vraiment plus ces soucl on peut voir aussi que avec ce qui est génial c'est que on a un dossier qui s'appelle types et contenir tous les types en fait les définitions types script pour tout le projet donc donc par exemple un type user qui contiendrait en fait qui serait
3:42une une définition Tab script une interface avec de quoi un utilisateur est constitué et bien on l'a défini à un seul endroit et si on en a besoin dans plusieurs API et cetera ou même dans plusieurs dans notre application next et en fait on va elle va être définie qu'à un seul un seul endroit donc on n'est pas en fait obligé de faire un un package où on va devoir à chaque fois bumper les versions euh ici par exemple et euh et automatiquement pusher dans NPM et après derrière rinstaller ch dans les projets là ce qui est génial avec turboripo c'est que quand on veut l'installer dans un projet ce package là
4:15vu qu'il est dans types je vais vous montrer
4:23euh si on ouvre le paacket Jon par exemple d'un d'un projet next vous pouvez voir qu'ici tout ce qu'on a besoin de faire c'est de mettre à the company the pi/ types et en fait workspace de point étoil et automatiquement lorsqu'on va rebuild le package et qu'on va installer les packag il va automatiquement prendre la bonne version du package en fait la version qui est en qui est en cours dans dans le repo donc on a plus cette notion de où à chaque fois faut bumper le package tout ce qu'on a besoin de faire c'est de build le package de réinstaller en fait après les packag ici et même
4:58quand on va bu bu en fait le le NX JS pour le mettre en production automatiquement lui il va voir SP de points slash Slash et il va prendre la version build du package donc voilà ça c'était le premier point que je voulais montrer un petit peu sur turboripo cette faculté en fait à à voir toutes les choses dans au même endroit et à pouvoir même si on en a besoin d' différent parties du du projet de pouvoir facilement y avoir accès l'autre point qui est cool c'est que on a aussi une seule une seule et unique euh configuration pour W lint pour tous les projets
5:30donc on n'est pas obligé de quand on a une des choses en fait à quand on a une règle s lint à rajouter on n'est pas obligé de la de la ré de réinstaller pour 150 projets on a juste à définir ici que ce qui se passe généralement c'est quand on a plein de plein de repository on a plusieurs es linterc dans dans tous les projets et en fait quand on veut mettre à jour quelque chose on est obligé de le mettre partout euh et on se retrouve à comit plein de fois là en fait on a un seul es linterc à la racine qui va être automatiquement
6:00pris pour tout le projet euh et rien nous empêche d'ailleurs d'avoir un autreos interc dans l'un des dans une des apps par exemple pour pouvoir euh étendre ou override une une règle spécifique en revanche euh nous on a pris l'ortuné on a pris le parti d'avoir une seule un seul es LC de manière à avoir un code qui soit uniforme partout ensuite on a également un seul git Inor un seul NPM RC un seul fichier de commit lint euh on a aussi un seul fichier d'diteur config vous pouvez voir aussi qu'au niveau de VS code B en fait on a un seul dossier qui va être à un seul
6:33endroit qui définit les extensions et les settings pour vs code notamment par exemple mettre en violet ici enfin il y a les les shortcut tout ce qu'on peut avoir et du coup un seul aussi de chez Point gitub donc vraiment le turboipo c'est l'UR en barre pour ça c'est de gagner la en productivité avec une seule et unique configuration et et du coup moins de duplication et c'est donc plus facile à maintenir on est plus productif et surtout on va pouvoir être capable de en fait d'avoir des choses qui sont beaucoup mieux organisées moi je trouve alors l'autre point qui est absolument extraordinaire avec et ça c'est sûrement
7:09le truc le plus cool je vais vous montrer ça alors en fait dans turboripo vous allez pouvoir définir des packag vous allez pouvoir définir des commandes et en fait par exemple à la racine dans le dans le packageion à la racine si vous faites turbo run build automatiquement ça va exécuter toutes les commandes build qui se trouvent dans tous les packet NPM d'accord donc là en fait ça va me build toutes mes API ça va me build mon mon application NC ça va me build tous mes packages et toutes ces chosesl avec une seule commande donc en fait je suis à la racine ici je fais NPM run
7:49build alors je vais essayer de zoomer pour vous puissiez voir là je fais NPM run build et automatiquement en fait ça va me m'exécuter toutes les commandes je vais vous montrer avec une autre commande par exemple NPM run si je fais ça vaexécuter par exemple dans dans pack j'ai Comand l ici donc il vaexécuter fait toutes les command deous les trucs les applications et T les packag PE fil fait vous en P que ça exéc toutes les commande l et à la fin ce qui est vraiment cool c'est vous avez vu il me dit qui a 26 succès et sur le total et ce qui est extrêmement
8:34cool avec turboréo c'est que si je relance cette même commande vous avez vu full turbo en fait comme il stock tous les il stock les résultats dans des fichiers point turbo ici alors vous pourz aller voir si vous avez envie tu vois turboint je sa pas trop qu'est-ce qu'il fait mais en tout cas comme il so tous les résultats en fait il voit qu'on a déjà exécuté cette commande là pour ces différents cette application là donc fait ça ser rien de la la rerun parce que rien a changé il y a aucun fichier qui a changé dans dans ce dans ce dans dans cette app ou dans ce package et ça ça fait gagner
9:11un temps faux au quotidien parce que quand on a des packages qui mettent du temps à build il suffit qu'on a changé juste un fichier en fait dans un dans un dans une des apps et ça va réexécuter cette commande là en fait que pour cette app là si parce que il va voir qu'en fait tout le code n'a rien changé pour les autres donc si c'était passé avant bah en fait voilà c'est la signature sur le casche c'est le même donc on on ne n'exécute pas et c'est un gain de temps notamment sur les tâches comme bah par exemple on a une notre commande qui sert
9:39à faire le type check donc à vérifier qu'il y a pas d'erreur type script dans aucun d' package donc là ils exécutent tabcheck voilà donc que ce soit NX tabcheck dans NX TSC pour les packages et cetera et il va nous dire en fait s'il voit une erreur je vais juste fermer ici il va nous dire s'il voit une erreur en fait tyesript automatiquement dans ce dans l'un de ces projets et si on la relance une deuxième fois ben en fait il va faire donc là 25 succès si je la relance la même commande il va me refaire un full turbo et en fait il a pas besoin de le relancer par
10:11contre si je modifie un fichier pareil on va devoir il va il va exécuter uniquement pour par exemple si je modifie un fichier de utility helper il va uniquement exécuter typeck pour utility helper mais les autres il va voir que c'est le même donc va pas exécuter donc c'est très utile aussi pour les tests en une commande en fait on peut faire NPM run test la racine et il va nous faire il va nous expliquer tous les tests pour tous les tous les packages puis toutes les les applications donc vraiment cette cette possibilité de lancer une seule commande pour lint test euh type shck et cetera
10:42ou n'importe quoi hein vous pouvez mettre ce que vous voulez euh plus un système de cash pour ne pas réexécuter les builds qui sont inutiles euh c'est vraiment un temps euh un gain de temps énorme et pour revenir à à pourquoi Vercel a racheté turboripo euh c'est que en fait ils ont un système de remote caching qui vous permet de pouvoir partager un build casche avec vos teammate ou votre CD pour des build encore plus rapides les build il va les saugarder dans le Cloud ce qui va vous permettre de ne pas les exécuter vous sur votre machine si quelqu'un l'a déjà exécuté quelque part donc on a un
11:13système de partager de de cash et ça c'est ce que ce qui est vendu par ver alors vous avez toujours la possibilité de faire vous-même mais c'est un peu plus compliqué mais ver permet de pouvoir le faire et donc c'est le business mod un peu turboripo un autre point que j'adore en fait avec turboripo c'est aussi la capacité d'avoir tout dans un éditeur notamment quand on a un code base d'ailleurs si je peux me permettre une apparté une de mes décisions dans quand j'ai démarré ce sas c'était d'avoir du Tab script partout et d'avoir un seul unique langage parce que je considère que tu gagnes énormément en productivité
11:46quand tu as qu'un seul langage et surtout c'est assez cool pour quelqu'un qui fait que du frond par exemple il peut très vite commencer à et à comprendre ce qui se passe un peu en bacen puis puis progressivement mettre un pied dedans et honnêtement avoir un turboipo avec un seul langage ça c'est vraiment en terme de au quotidien un vrai vrai gain de temps et en le on a tout dans l'éditeur et cetera ça c'est vraiment je je je ne peux que vous conseiller d'utiliser turboipo si vous êtes sur une stack en typespt il y a aussi deux autres points que je voudrais aborder et on va terminer sur ça euh
12:18parce qu'après vous pourrez aller creuser dans la doc euh si vous avez plus envie si vous envie en savoir un peu plus c'est que en gros on utilise un package N qui s'appelle many package et en gros many package ça vous permet de pouvoir être alerté en fait quand quand imaginons que dans vous avez deux applications next JS dans votre dans votre turboripo et une utilise NX 3.1 et l'autre utilise NX 3.12 ok en fait my package il va vous dire attention là vous avez deux versions de NOx qui sont différentes euh essayez de de les mettre essayer de vous mettre sur les mêmes versions de manière à avoir une
13:01uniformité dans les versions de package entre tous vos tous vos applications donc ça c'est un truc qu'on utilise et qui est assez pratique pour ramener encore plus de rigueur et l'autre point et ça c'est peut-être le petit défaut de de turboripo c'est que turboripo on pourrait l'exécuter en fait avec en faisant un turboipo run dev et ça va et ça exécutera automatiquement toutes les commandes dev de en de de toutes les toutes les app pour lancer notre environnement local mais nous on l'utilise pas comme ça on utilise avec PM2 parce qu'on trouve ça beaucoup plus pratique d'avoir tous les process directement sur la machine en background et de manière à on k
13:39l'éditeur et cetera tout tout est encore en ligne et surtout ça permet de monitorer beaucoup plus facilement les log et ca ce qui se passe donc ce qu'on a fait c'est qu'on a fait un on on a installé directement PM2 vous voyez à la racine du turboripo et ce que l'on fait c'est que ça vous permet aussi de on lance un script et si je vous montre le script à quoi il ressemble euh hamamam développement ben en fait ça va lancer des dépendanci donc ça va lancer les redit et cetera maisc et tout s'ils sont pas lancer et ensuite ça va exécuter avec pnpm automatiquement les les
14:11différentes appes qu'on a besoin donc nos API et cetera euh donc voilà un petit peu dans les détails et surtout ça vous permet de pouvoir avoir de monitorer un peu tout ce qui se passe donc voilà un petit peu dans les détail turboripo donc pour résumer turboripo c'est un monoripo qui qui vous permet de pouvoir euh éviter duplication du code en ayant tout dans un seul endroit de pouvoir facilement installer un package interne qu'on a développé dans un dans une des app notamment avec le l'expellation workspace de point étoil ensuite ça vous permet d'avoir de lancer en d'avoir un système qui vous permet de lancer une seule commande par
14:46exemple turbo run lint et de lancer tous les lint de tous les toutes les app et tous les packages si vous avez besoin de lancer que pour les app bah vous faites un tir ti filter app et ça va le faire uniquement pour les app et donc ça c'est absolument génial par exemple pour des gitub action je sais pas si je peux vous montrer mais par exemple tiens pour le staging nous ce qu'on fait en fait c'est que au lieu de lancer on fait un pnpm run build package ça va ça va exécuter en fait la la commande ici build package quiàd en fait pour tout ce
15:17qui est data et les packages et ce donc ça vous permet aussi d'avoir on va dire en qu de commande de tout faire en fait donc on lint on type check on et on faera même une fonction test en fait en plus pour acheter donc ça c'est ça permet de faire ça vous permet aussi de pouvoir avoir un système de cach pour ne pas relancer des tâches qui ont des tests une séquence de tests qui a déjà été lancé au préalable il rien a changer dans le projet donc il y a pas de raison de les relancer normalement il devrait repasser et ensuite ça vous permet de
15:47pouvoir avec PM2 d'avoir un environnement de développement qui est vraiment vraiment super agréable pour votre votre SAS et avec mini package aussi de pouvoir avoir une uniformité dans les packages donc ce que je je vous conseille de faire pour ceux que ça intéresse si j'ai réussi à vous convaincre c'est que allez jeter un œil à à la documentation elle est très clean comme vous pouvez voir c'est il y a vraiment eu un soin un très gros soin apporté par par par turboripo là-dessus ça marche très bien avec pnpm je vais pas revenir ce que c'est pnpm mais c'est une version de NPM améliorée qui vous permet de pouvoir installer
16:20ultra rapidement plein de packag en faisant des SIM link vers un autre module et vous pouvez regarder en détail sur Google al donc vous pouvez tester installer minimal turboripo avec next GS donc vous aurez ah oui et l'autre point important que j'aie de dire c'est que ça vous permet aussi de d'avoir des fich imaginons vous avez une libririe de composants ui externe qui comprendrait des composants extrêmement basiques alors vous avez tout vous pouvez très facilement laavir en fait et dans vos deux applications nextjs par exemple dashboard administration et et l'application pour les clients avoir utiliser ces composants là du coup les avoir définis un seul endroit et de pas avoir la
16:56duplication entre re des boutons par exemple ah oui et enfin une dernière question qu'on qu'on pose souvent c'est combien de temps ça prend de mettre en place un turboripo dans dans son s si on utilise pas turboripo nous ça nous a pris à peu près 15 jours à à faire la transition on y allait progressivement on a d'abord mis tout dans un surboripo ça cassait il y a plein drit où ça cassait on a eu des petits commé sur NPM il a eu des petits cass des petits trucs qui ont cassé avec pnpm mais dans l'ensemble franchement c'est pas forcément pour le gain de temps que ça
17:23va vous faire occasionner et et le confort au niveau du coding euh ça vaut vraiment le coup donc hésitez pas à investir et à faire un petit POC pour voir en détail combien de temps ça pourrait vous prendre de mettre en place tout votre projet dans un turbopo mais honnêtement c'est vraiment un plaisir au quotidien de bosser avec voilà hésitez pas à me dire en commentaire si j'ai oublier des petites choses sur turboépau si vous l'utilisez aussi et enfin j'espère que je vous ai convaincu à utiliser ça parce que ça va devrait vous rendre beaucoup beaucoup plus productif pour construire un sas allez je vous souhaite une agréable semaine et à
17:57bientôt
No line in this video contains that word.
Where these words come from. This is the caption track YouTube holds for this video, written automatically by YouTube rather than by the creator. We read it, tidied the line breaks and laid it out so it can be read. The plain text version is at https://viewrankai.com/tools/youtube-transcript/a-d1LWOPS6Q.txt.
All rights in this video belong to SaaS Makers. Watch it on YouTube. If this is your video and you would rather this page did not exist, tell us and we will remove it.