Chargement…

Un projet backend Typescript from scratch

Un projet backend Typescript from scratch

Pourquoi ne pas partir d'un Boilerplate ?

J'évite toujours de partir d'un Boilerplate public pour plusieurs raisons :

  • Je veux éviter d'avoir trop de dépendances pour simplifier la maintenance et la montée de version.
  • Je veux maîtriser ce qui est installé dans mon projet pour éviter tout problème de hack ou problème de droit.
  • A part les gros projets, les boilerplates sont souvent déjà obsolètes

Certains boilerplate sont pratiques

Il y a tout de même certains boilerplate qui sont utiles :

  • Create React App
  • Next.js

Et il m'arrive même d'en faire pour moi même, mais pour un projet backend Typescript, on peut partir from scratch

Un projet Typescript avec Jest et SWC

Il ne faut pas grand chose pour mettre cela en place :

mkdir new_project
cd new_project

yarn init

# Install Typescript

yarn add -D typescript @types/node ts-node
npx tsc --init

# Cela va générer un fichier tsconfig.js
# En général je configure les rootDir et outDir

# Install Jest

yarn add -D jest @swc/core @swc/jest @types/jest 
npx jest --init

# Cela va générer un fichier jest.config.js 

Dans le fichier jest.config.js

module.exports = {
	// ...
	transform: {
		"^.+\\.(t|j)sx?$": ["@swc/jest"],
	},
};

Vous pouvez maintenant créer votre fichier src/index.ts

Pour exécuter le code :

npx ts-node src/index.ts

Pour exécuter les tests :

npx jest 

FAQ

Pourquoi utiliser SWC plutôt que ts-jest pour les tests ?

SWC est un compilateur écrit en Rust, beaucoup plus rapide que les solutions basées sur le compilateur TypeScript natif. Pour les tests avec Jest, cela réduit significativement le temps d'exécution, surtout sur les projets qui grossissent.

Est-ce que cette configuration fonctionne aussi pour une API Express ou Fastify ?

Oui, cette base est volontairement minimale et agnostique. Tu peux ensuite ajouter le framework HTTP de ton choix avec yarn add sans que la configuration TypeScript ou Jest ne soit impactée.

Que faut-il configurer dans tsconfig.json après l'avoir généré ?

Le minimum conseillé est de définir rootDir pour pointer vers ton dossier source, et outDir pour indiquer où seront compilés les fichiers JavaScript. Cela évite que les fichiers compilés ne se mélangent au code source.

Peut-on utiliser npm à la place de yarn pour ces commandes ?

Oui, il suffit de remplacer yarn add -D par npm install --save-dev et yarn init par npm init. Le reste de la configuration reste identique.

Comment lancer le projet en production une fois le code compilé ?

Tu compiles d'abord avec npx tsc, ce qui génère les fichiers JavaScript dans le dossier outDir, puis tu exécutes le fichier de sortie avec node. En développement, ts-node permet de s'affranchir de cette étape de compilation.


Poursuivre la lecture

Un template frontend React Typescript Dev
#react#template#typescript

Un template frontend React Typescript

Je vous donne mon template perso pour déployer un projet React Typescript en moins de temps qu'il ne faut pour lire le nombre de techno que ça embarque. 😂

Alexandre P.
Passer de frontend à backend - le déploiement Dev
#backend#frontend#conseil

Passer de frontend à backend - le déploiement

Apprenez à déployer vos projets en tant que développeur fullstack : maîtrisez les bases du déploiement même sans compétences avancées en SysAdmin ou Ops.

Alexandre P.