Recherche…
Introduction
Transpiling est le processus d'interprétation de certains langages de programmation et de leur traduction dans une langue cible spécifique. Dans ce contexte, transpiling prendra les langages compiler vers JS et les traduira dans la langue cible de Javascript.
Remarques
Transpiling est le processus de conversion du code source en code source, une activité courante dans le développement JavaScript.
Les fonctionnalités disponibles dans les applications JavaScript courantes (Chrome, Firefox, NodeJS, etc.) sont souvent inférieures aux dernières spécifications ECMAScript (ES6 / ES2015, ES7 / ES2016, etc.). Une fois la spécification approuvée, elle sera certainement disponible en mode natif dans les futures versions des applications JavaScript.
Plutôt que d'attendre de nouvelles versions JavaScript, les ingénieurs peuvent commencer à écrire du code qui s'exécutera en mode natif dans le futur (pérennisation) en utilisant un compilateur pour convertir le code écrit pour les nouvelles spécifications en code compatible avec les applications existantes. Les transpileurs communs incluent Babel et Google Traceur .
Les transpileurs peuvent également être utilisés pour convertir un autre langage comme TypeScript ou CoffeeScript en JavaScript "classique". Dans ce cas, le transpiling est converti d'une langue à une autre.
Introduction à la transpolation
Exemples
ES6 / ES2015 à ES5 (via Babel ) :
Cette syntaxe ES2015
// ES2015 arrow function syntax
[1,2,3].map(n => n + 1);
est interprété et traduit selon la syntaxe ES5:
// Conventional ES5 anonymous function syntax
[1,2,3].map(function(n) {
return n + 1;
});
CoffeeScript to Javascript (via le compilateur CoffeeScript intégré) :
Ce CoffeeScript
# Existence:
alert "I knew it!" if elvis?
est interprété et traduit en Javascript:
if (typeof elvis !== "undefined" && elvis !== null) {
alert("I knew it!");
}
Comment est-ce que je transpile?
La plupart des langages compilables sur Javascript ont un transpiler intégré (comme dans CoffeeScript ou TypeScript). Dans ce cas, il vous suffit d'activer le transpiler du langage via les paramètres de configuration ou une case à cocher. Des paramètres avancés peuvent également être définis par rapport au transpiler.
Pour la transpolation ES6 / ES2016-à-ES5 , le transpiler le plus utilisé est Babel .
Pourquoi devrais-je transpiler?
Les avantages les plus cités comprennent:
- La possibilité d'utiliser de nouvelles syntaxes de manière fiable
- Compatibilité entre la plupart, sinon tous les navigateurs
- Utilisation de fonctionnalités manquantes / pas encore natives dans Javascript via des langages tels que CoffeeScript ou TypeScript
Commencez à utiliser ES6 / 7 avec Babel
Le support du navigateur pour ES6 est en pleine croissance, mais pour être sûr que votre code fonctionnera sur des environnements qui ne le supportent pas complètement, vous pouvez utiliser Babel , le transpiler ES6 / 7 à ES5, essayez-le!
Si vous souhaitez utiliser ES6 / 7 dans vos projets sans vous soucier de la compatibilité, vous pouvez utiliser Node et Babel CLI
Mise en place rapide d'un projet avec le support Babel pour ES6 / 7
- Téléchargez et installez Node
- Accédez à un dossier et créez un projet à l'aide de votre outil de ligne de commande préféré.
~ npm init
- Installer Babel CLI
~ npm install --save-dev babel-cli
~ npm install --save-dev babel-preset-es2015
- Créez un dossier de
scripts
pour stocker vos fichiers.js
, puis un dossierdist/scripts
lequel les fichiers entièrement compatibles transpilés seront stockés. - Créez un fichier
.babelrc
dans le dossier racine de votre projet et écrivez-le dessus
{
"presets": ["es2015"]
}
- Modifiez votre fichier
package.json
(créé lors de l'scripts
npm init
) et ajoutez le script debuild
à la propriétéscripts
:
{
...
"scripts": {
... ,
"build": "babel scripts --out-dir dist/scripts"
},
...
}
- Profitez de la programmation en ES6 / 7
- Exécutez les opérations suivantes pour transférer tous vos fichiers sur ES5
~ npm run build
Pour des projets plus complexes, vous pouvez consulter Gulp ou Webpack