compilator CoffeeScript este scris în pură CoffeeScript, folosind un DSL mic pe partea de sus a generatorului parser Jison, și este disponibil ca un utilitar Node.js.
Compilatorul de bază însă, nu depinde de nod, și poate fi rulat în alte medii de server-side-JavaScript, sau în browser.
CoffeeScript folosește Python stil spațiu semnificativ, astfel finaluri de linie sunt considerate terminații cod, precum
Ce este nou în această versiune:.
- Fixed o eroare mod ceas introduse în 1.9.1, atunci când compilarea mai multe fișiere cu același nume.
- Bugfix pentru randament in jurul expresii care conțin acest lucru.
- Adăugat o opțiune -r Ruby stil de repl, care permite necesită un modul, înainte de execuție cu --eval sau --interactive.
- În & # x3c, script type = & quot; text / coffeescript & quot; & # x3e; tag-uri, pentru a evita posibilele cereri browserului duplicate de fișiere .coffee, puteți utiliza acum atributul date src loc de src.
- bug fixat minore pentru IE8, expresii regulate ES5 stricte și Browserify.
Ce este nou în versiunea 1.9.2:
- Fixed o eroare mod ceas introduse în 1.9.1 când compilarea mai multe fișiere cu același nume.
- Bugfix pentru randament in jurul expresii care conțin acest lucru.
- Adăugat o opțiune -r Ruby stil de repl, care permite necesită un modul, înainte de execuție cu --eval sau --interactive.
- În & # x3c, script type = & quot; text / coffeescript & quot; & # x3e; tag-uri, pentru a evita posibilele cereri browserului duplicate de fișiere .coffee, puteți utiliza acum atributul date src loc de src.
- bug fixat minore pentru IE8, expresii regulate ES5 stricte și Browserify.
Ce este nou în versiunea 1.9.1:
- CoffeeScript suportă acum generatoare ES6. Un generator este pur și simplu o funcție care produce.
- parsarea mai robust și îmbunătățită de eroare mesaje pentru siruri de caractere și regexes -. În special în ceea ce privește interpolare
- strategie schimbat pentru generarea de nume de variabile compilator intern.
- Compatibilitate REPL fixe cu cele mai recente versiuni de nod și Io.js.
- Diverse remedieri minore bug-uri.
Ce este nou în versiunea 1.8.0:
- Opțiunea --join a CLI este acum depreciat.
- Sursa hărți acum folosesc .js.map ca extensie de fișier, în loc de doar .map.
- CLI iese acum cu codul de ieșire 1 când nu reușește să scrie un fișier de pe disc.
- Compilatorul nu mai blochează pe șiruri neterminat, cu un singur citat.
- datele de localizare fixe interpolări coarde, care a făcut hărți sursa de sincronizare.
- Markerul eroare în mesaje de eroare este acum poziționat corect în cazul în care codul este indentat cu file.
- Fix o eroare de formatare ușoară sursă-harta patch urmele stack CoffeeScript lui.
- Operatorul %% constrânge acum operandul stătător doar o singură dată.
- Acum este posibil să se solicite fișiere CoffeeScript din Cakefiles fără să se înregistreze compilator primul.
- CoffeeScript repl este acum exportate și poate fi necesară utilizarea necesită "cafea-script / repl".
Ce este nou în versiunea 1.7.0:
- Mesaje de eroare îmbunătățite, hărți sursă și stiva urme. Sursa hărți folosi acum actualizat // # sintaxa.
- Leading. închide acum toate apelurile deschise, permițând sintaxa înlănțuirea mai simplă.
- Inchidere poate fi acum indentat și, prin urmare, nu mai produce eroare neașteptată.
- Adăugat ** // și operatorii %% și ... expansiune în listele de parametri și expresii destructurare.
- Formatarea comentarii bloc compilate a fost îmbunătățită.
- dosare Nu mai -p pe Windows.
- Opțiunile obiect a trecut la CoffeeScript nu mai este mutant.
paranteze
Ce este nou în versiunea 1.6.3:
- CoffeeScript repl amintește acum istoricul între sesiuni. La fel ca un REPL adecvat ar trebui.
- Pot folosi acum nevoie în Node pentru a încărca fișiere .coffee.md analfabeților CoffeeScript. În browser, text / tag-uri script știință de carte-coffeescript.
- vechi Comanda cafea --lint a fost eliminat. A fost util în timp ce inițial de lucru pe compilator, dar a fost depășit de JSHint. Puteți utiliza acum -l pentru a trece fișiere alfabetizate in peste stdio.
Ce este nou în versiunea 1.6.1:
- Fixed o regresie 1.5.0 cu mai multe apeluri implicite împotriva unui obiect implicit indentat. Combinații de apeluri de funcții implicite și obiecte implicite ar trebui să fie, în general, analizat mai bine acum. -, Dar încă nu este stilul bun la cuibul ei prea mult
- .coffee.md este acum, de asemenea, susținută ca o extensie de fișier analfabeților CoffeeScript, pentru scule existente. .litcoffee rămâne cel canonic.
- Mai multe remedieri minore jur proprietăți membre, metode legate și super-în declarațiile de clasă.
Ce este nou în versiunea 1.5.0:
- CoffeeScript repl se bazează acum pe nodul. js REPL, și ar trebui să lucreze mai bine și mai familiar.
- Revenind valori explicite de constructori este acum interzisă. Dacă doriți să se întoarcă o valoare arbitrară, utilizați o funcție, nu o constructor.
- Poate acum buclă pe o matrice spate, fără a fi nevoie de a face manual cu indicii: de element în lista de -1
- Sursa locații sunt acum păstrate în CoffeeScript AST, deși hărțile sursă nu sunt încă emise.
Ce este nou în versiunea 1.4.0:
- Compilatorul CoffeeScript benzi acum Microsoft UTF-8 BOM dacă există, permițându-vă pentru a compila fișierele sursă BOM-borked.
- Nod fixă / compilator dezaprobare prin eliminarea registerExtension, și se deplasează de la path.exists la fs.exists.
- trucurile mici la compilare bulină, backticks, feliere, iar eroarea de chei duplicat în literale obiect.
Atenționări
Ce este nou în versiunea 1.3.2:
- în interiorul unei funcții imbricate în interiorul unei metode instanță , este acum posibil pentru a apela super-mai fiabil (plimbari recursiv sus).
- variabile bucla numele nu mai au diferite euristici definire decât alte variabile locale.
- Fix pentru buline imbricate în LHS de destructurare cesiune.
- Corectarea modul nostru compilare strict interzicerea literali octale.
Ce este nou în versiunea 1.3.1:
- repl are acum un nou multi-line la îndemână Modul de introducere blocuri mari de cod. Este util atunci când exemple copie și-lipire în repl. Intra în modul multi-linie cu Ctrl-V. S-ar putea acum de intrare conductă direct în repl asemenea.
- CoffeeScript imprimă acum o Generate de antet VERSION CoffeeScript în partea de sus a fiecărui fișier compilat.
- atribuire condiționată de variabile nedefinite anterior a sau b = este considerat o eroare de sintaxă.
- A tweak la semantica de rezolvat, care pot fi acum folosite pentru a simula mai ușor un namespace: do (x = 1, y = 2) - și # x3e; ...
- Indicii Buclă sunt acum într-o repetare mutabil buclă, și imuabilă între ele.
- Ambele obiective ale unei felii sunt acum permis să fie omise de consecvență, creând în mod eficient o copie superficială a listei.
- trucurile suplimentare și improvments la cafea --watch sub lui Nod & quot; noi & quot; fișier uitam API. Watch va emite acum implicit dacă va introduce o eroare de sintaxă într-un scenariu privit. De asemenea, acum ignora directoare ascunse în mod implicit atunci când vizionați recursiv.
Ce este nou în versiunea 1.2.0:
- îmbunătățiri multiple pentru cafea --watch și - alăture. Puteți utiliza acum atât împreună, cât și adăuga și elimina fișiere și directoare într-un dosar --watch'd.
- Declarația margine poate fi acum folosit ca parte a unei expresii.
- comentariile bloc din partea de sus a fișierului va apărea acum în afara învelișului de închidere de siguranță.
- fix o serie de minore 1.1.3 regresii au de a face cu operatori la dreapta și linii neterminate, și mai important 1.1.3 regresie care a cauzat funcții legate în funcții de clasă obligat să aibă incorectă asta.
Ce este nou în versiunea 1.1.3:
- CoffeeScript lui compilate JS încearcă acum să lucrurile spațiu afară și păstrați-l ușor de citit, așa cum se poate vedea in exemplele de pe aceasta pagina.
- Pot suna acum super-în metode de nivel de clasa de organisme de clasă, și metode de clasă legate acum păstreze contextul lor corect.
- JavaScript a sprijinit întotdeauna 010 este de 8, iar numerele hexazecimale 0xf este de 15, dar CoffeeScript acum sprijină, de asemenea numere binare:. 0b10 este de 2
- Modulul CoffeeScript a fost imbricate sub un subdirector a face mai ușor de a solicita separat componente individuale, fără a recurge la NPM. De exemplu, după adăugarea dosarul CoffeeScript la calea: necesită ("script-cafea / lexer")
- Este un nou & quot; link & quot; dispun în Incearca CoffeeScript pe această pagină web. Folositi-l pentru a obține un permalink partajabile de exemplu script-ul.
- Cafeaua --watch dispun acum funcționează doar pe Node.js 0.6.0 și mai mare, dar acum, de asemenea, funcționează corect pe Windows.
Numerele octale
Ce este nou în versiunea 1.1.2:
- CoffeeScript utilizează Function.prototype.bind nativ pentru literali funcții legate atunci când sunt disponibile.
- Corecții pentru:? Bloc comment formatare, = compilare, apeluri implicite împotriva structurilor de control, invocarea implicit al unui bloc try / catch, argumente variadic scurgeri din domeniul local, numerele de linie în erori de sintaxă următoarele heregexes, acces de proprietate asupra literali număr paranteze , legat metode de clasă și de super cu nume rezervate, o revizuire REPL, punct și virgulă consecutive compilate, comentarii bloc în numite implicit obiecte, și un bug Chrome.
Ce este nou în versiunea 1.1.1:.
- eliberare Bugfix pentru clasele cu funcții de constructor externe
Ce este nou în versiunea 1.1.0:
- Când rulați prin cafea executabil, process.argv și prieteni raportează acum cafea în loc de nod.
- compatibilitate mai bună cu Node.js modificări modul 0.4.x căutare.
- Rezultatul din repl este acum colorată, cum ar fi a lui Nod este.
- Oferirea CoffeeScripts dvs. concatenate un nume atunci când se utilizează --join este acum obligatorie.
- Fix pentru divizia compus lexicală / = ca regex accidental.
- Toate etichetele text / coffeescript ar trebui să execute acum în ordinea în care te incluse.
- Fix o problemă cu subclase extinse utilizând funcțiile constructor externe.
- Fix o margine caz buclă infinită în addImplicitParentheses.
- fix încetinire exponențială cu lanțuri lungi de apeluri de funcții.
- Globals nu mai scurge in CoffeeScript repl.
- parametri Splatted sunt declarate locale la funcția.
Ce este nou în versiunea 1.0.1:.
- Fixed un bug lexer cu identificatori Unicode
- Actualizat REPL pentru compatibilitatea cu Node.js 0.3.7.
- fix necesită căi relative în repl.
- Trailing retur și să se întoarcă nedefinit sunt acum optimizate departe.
- Oprit necesită bază Node.js & quot; UTIL & quot; modul de back-compatibilitate cu Node.js 0.2.5.
- fix un caz în care o revenire condiționată ar provoca fallthrough într-o declarație comutator.
- obiecte goale optimizate în misiune destructurare.
Ce este nou în versiunea 0.6.2:
- Comanda de cafea va păstra acum structura de directoare, atunci când compilarea un director plin de scripturi. Fixate două omisiuni care au fost prevenirea compilator CoffeeScript de funcționare direct în Internet Explorer. Există acum o sintaxă pentru comentarii bloc, similare în spirit de heredocs CoffeeScript lui. ECMA Harmony stil DRY potrivire de model este suportat, în cazul în care numele de proprietate este același cu numele valorii: {nume, lungimea}: FUNC. Model de potrivire este acum permisă în variabile de înțelegere. cu excepția cazului în prezent permisă în formă de bloc. până s-au adăugat bucle, ca inversul while. Declarații de comutare sunt acum permise fără clauze comutator obiect. Compatibil cu Node.js v0.1.95.
Cerințe :
- Node.js 0.8.0 sau mai mare
Comentariile nu a fost găsit