| 📦 Turbo JS 91999d1 k33g 11h ago | 1 | # Installer et compiler Turbo JS |
| 2 | |
| 3 | Ce guide montre comment obtenir un binaire `turbo-js` fonctionnel. Il suppose que vous avez Go 1.26 ou plus récent et que vous savez utiliser un terminal. |
| 4 | |
| 5 | ## La voie rapide, depuis un clone |
| 6 | |
| 7 | ```bash |
| 8 | git clone ssh://git@rickub.com/turbo-editors/turbo-js.git |
| 9 | cd turbo-js |
| 10 | make install |
| 11 | ``` |
| 12 | |
| 13 | Cela compile l'éditeur, le place là où votre shell cherche ses commandes, et vous dit ce qu'il a trouvé : la version de Go, où le binaire a été posé, si ce répertoire est dans votre `PATH`, et si `typescript-language-server` — le serveur de langage — est installé. La compilation passe d'abord par un fichier temporaire : un échec ne remplace jamais une installation qui marchait. |
| 14 | |
| 15 | Ensuite, depuis n'importe quel dossier contenant un script JavaScript : |
| 16 | |
| 17 | ```bash |
| 18 | turbo-js main.js |
| 19 | ``` |
| 20 | |
| 21 | ### Options |
| 22 | |
| 23 | ```bash |
| 24 | scripts/install.sh --prefix ~/bin # installer ailleurs |
| 25 | scripts/install.sh --with-server # installer aussi le serveur de langage |
| 26 | scripts/install.sh --uninstall # le retirer (make uninstall) |
| 27 | scripts/install.sh --help |
| 28 | ``` |
| 29 | |
| 30 | Sans `--prefix`, l'éditeur va là où `go install` le mettrait : `$GOBIN`, ou `$GOPATH/bin` si `GOBIN` n'est pas défini — le plus souvent `~/go/bin`. |
| 31 | |
| 32 | `--with-server` lance `npm install -g typescript-language-server typescript@6`, qui installe le serveur de langage et le TypeScript dont il dépend là où npm dépose ses binaires globaux. Il a besoin de `npm`, donc de Node. Le `@6` n'est pas facultatif : TypeScript 7 ne livre pas de `tsserver.js`, et le serveur refuse de démarrer à côté de lui. Si Node manque encore, voir [Installer Node.js](install-node.md). |
| 33 | |
| 34 | ## Seulement compiler, sans installer |
| 35 | |
| 36 | ```bash |
| 37 | make build |
| 38 | ./bin/turbo-js main.js |
| 39 | ``` |
| 40 | |
| 41 | `make build` vérifie aussitôt que le binaire produit annonce la version attendue ; c'est pour cela qu'il appelle `scripts/check-version.sh` derrière `go build`. |
| 42 | |
| 43 | ## Depuis le proxy de modules, sans clone |
| 44 | |
| 45 | ```bash |
| 46 | go install rickub.com/turbo-editors/turbo-js@latest |
| 47 | ``` |
| 48 | |
| 49 | Si la commande est ensuite « introuvable », c'est que le répertoire d'installation n'est pas dans votre `PATH` : |
| 50 | |
| 51 | ```bash |
| 52 | export PATH="$PATH:$(go env GOPATH)/bin" |
| 53 | ``` |
| 54 | |
| 55 | ## Vérifier que ça marche |
| 56 | |
| 57 | ```bash |
| 58 | turbo-js -version |
| 59 | turbo-js -list-themes |
| 60 | ``` |
| 61 | |
| 62 | La première nomme le commit dont le binaire a été construit, ce qu'il faut citer dans un rapport de bug ; [le numéro de version](../reference/versioning.md) explique ce que signifie chaque forme. La seconde affiche les thèmes compilés dans le binaire et vous indique où placer les vôtres. |
| 63 | |
| 64 | ## Variantes |
| 65 | |
| 66 | - **Vous voulez juste l'essayer une fois** : `go run rickub.com/turbo-editors/turbo-js@latest main.js` |
| 67 | - **Vous voulez le binaire à un endroit précis** : `go build -o /usr/local/bin/turbo-js .` |
| 68 | - **Votre terminal ne gère pas les couleurs 24 bits** : utilisez `turbo-js -theme turbo-classic`, construit uniquement sur les seize couleurs ANSI. `turbo-dark` et `borland-light` utilisent des couleurs 24 bits. |
| 69 | |
| 70 | ## Quand quelque chose ne va pas |
| 71 | |
| 72 | **`the installed binary does not run`.** L'installeur affiche juste au-dessus ce que le système a répondu — lisez-le d'abord, c'est lui qui nomme le vrai problème. |
| 73 | |
| 74 | L'installeur **remplace** le binaire au lieu d'écrire par-dessus celui qui est là : une réinstallation donne donc au fichier une identité neuve. Cela compte sous macOS, qui met en cache la signature de code d'un binaire **par inode** : écrire de nouveaux octets dans l'ancien inode laisse une signature en cache qui décrit autre chose, et le noyau refuse alors d'exécuter un binaire qui s'est pourtant compilé et installé sans erreur. Si une ancienne copie a été installée par un outil qui employait `cp`, la supprimer d'abord efface cet état : |
| 75 | |
| 76 | ```bash |
| 77 | scripts/install.sh --uninstall |
| 78 | scripts/install.sh |
| 79 | ``` |
| 80 | |
| 81 | **`Go x.y or later is needed`.** La version vient de `go.mod` : elle ne peut donc pas diverger de ce dont le code a réellement besoin. Mettez Go à jour, ou compilez depuis une étiquette correspondant à la chaîne d'outils dont vous disposez. |
| 82 | |
| 83 | **`build failed; nothing was installed`.** Votre installation existante est intacte — la compilation passe d'abord par un fichier temporaire. La sortie du compilateur est affichée au-dessus du message. |
| 84 | |
| 85 | **La barre d'état dit `LSP: no typescript-language-server — npm install -g typescript-language-server typescript@6`.** L'éditeur fonctionne, mais sans complétion : `typescript-language-server` n'est ni dans le `PATH`, ni dans les dossiers où npm, nvm, pnpm et Volta déposent leurs binaires globaux, ni dans `/usr/local/bin` ou `/opt/homebrew/bin`. Voir [Activer la complétion JavaScript](enable-completion.md). |
| 86 | |
| 87 | ## Exigences côté terminal |
| 88 | |
| 89 | Turbo JS a besoin d'un terminal qui rapporte sa taille et gère la souris — tous les terminaux courants le font. Il lit `TERM` via tcell ; si l'affichage est incorrect, vérifiez que `TERM` correspond bien à votre terminal (`xterm-256color` est une valeur sûre). |
| 90 | |
| 91 | ## Voir aussi |
| 92 | |
| 93 | - Toutes les options : [référence de la ligne de commande](../reference/cli.md) |
| 94 | - Faire marcher la complétion : [Activer la complétion JavaScript](enable-completion.md) |
| 95 | - Une première session guidée : [Votre premier programme JavaScript dans Turbo JS](../tutorials/getting-started.md) |
| 96 | - Des projets pour l'essayer : [les démos](../../../demos/) |