node.js - Pot să transpil TypeScript în ES6 dacă îl folosesc doar cu Node?
Scriu o nouă aplicație care rulează pe Node. Codul va rula doar pe un server Node, deci compatibilitatea cu browser-ul nu este o problemă. Baza de cod este scrisă în TypeScript.
În fișierul meu tsconfig.json am următoarele opțiuni setate pentru compilator:
{
"include": [
"src/**/*"
],
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"sourceMap": true,
"noEmitOnError": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitThis": true
}
}
Notă că urmăresc ES6, dar export module CommonJS!
Codul produs de tsc (versiunea 2.1.4) rulează bine pe Node (versiunea 6.9.1), atât cât am testat. De asemenea, consultând node.green se arată că majoritatea funcționalităților ES5 și ES6 sunt implementate în Node.
Din păcate, nu pot găsi nicio informație sau recomandare oficială privind ce versiune de JavaScript ar trebui utilizată cu Node. Din câte pot observa, nu există nimic care să mă împiedice să folosesc ES6.
Întrebarea mea: Pot folosi în mod fiabil codul ES6 generat cu Node?
Răspuns #1
Toate nuanțele implementării ES6 pot fi descrise ca caracteristici. Asta a fost făcut la node.green.
Cu excepția modulelor ES6, Node 6+ suportă pe deplin (99% compatibilitate, cu unele discrepanțe minore) ES6.
Deci nu, nu ar trebui să existe probleme neașteptate. Dar pot exista unele dacă codul specific ES6 este transpus în ES5, așadar ținta ES5 va cauza probabil probleme, pe de altă parte.
Răspunsul #2
Iată ce are de spus site-ul Node.js:
Toate caracteristicile ECMAScript 2015 (ES6) sunt împărțite în trei grupuri: caracteristici livrate, în stadiu de testare și în curs de dezvoltare:
- Toate funcțiile de expediere, pe care V8 le consideră stabile, sunt activate implicit în Node.js și NU necesită niciun fel de flag la rulare.
- Funcțiile etapizate, care sunt funcții aproape finalizate și care nu sunt considerate stabile de echipa V8, necesită un flag de rulare: --harmony.
- Funcționalitățile în curs de dezvoltare pot fi activate individual prin intermediul flagului lor de armonie respectiv, deși acest lucru este descurajat puternic, cu excepția cazului în care este pentru scopuri de testare. Notă: aceste flaguri sunt expuse de V8 și se pot schimba fără nicio notificare de întrerupere.
Citește mai mult aici