2015-11-10 6 views
12

Próbuję użyć nowej wersji Babel, a podczas próby użycia presetu babel es2015 wydaje się nie być w stanie zrozumieć funkcji strzałek?Babelify 6 z browserify i preset es2015 nie działa

Moja konfiguracja na wstępnym babel6 był następujący:

transform: [['babelify', {sourceMap: false, stage: 0, optional: 'runtime', ignore: ["*.min.js"]}]] 

iz babel6

transform: [['babelify', {"presets": ["es2015"]}]] 

który nie działa. Dlaczego to?

edit

dodanie "stage-0" pozbył się komunikaty o błędach składni, ale nie zatykać mnie od bycia w stanie rozszerzyć coś z błędem: 'this' is not allowed before super() kiedy mam rzeczywiście dostał super() połączenia.

edit

Ustaw prostą aplikację testową z pewnym ES7 i próbował użyć babel-core wymagają hak, ten sam problem.

edycja

Ok więc zawężeniu go do etapu-0 działa inaczej babeljs 6 ^.

Oto co zauważyłem:

plik Run

require("babel-core/register")(
    { 
     presets: ["es2015", "stage-0"] 
    } 
); 

require("./app.js"); 

Działa z:

class extendable { 
    constructor() { 
     console.log('extended') 
    } 
} 

class app extends extendable { 

    constructor() { 

     super(); 

     this.method(); 
     this.method2(); 
    } 

    method() { 
     // arrow functions 
     setTimeout(() => { 
      console.log("works") 
     }, 1000) 
    } 

    /** 
    * arrow function method 
    */ 
    method2 =() => { 
     console.log('works') 
    } 
} 
new app(); 

Nie współpracuje z:

class extendable { 
    constructor() { 
     console.log('extended') 
    } 
} 

class app extends extendable { 

    constructor() { 

     super(); 

     this.method(); 
     this.method2(); 
    } 

    method() { 
     // arrow functions 
     setTimeout(() => { 
      console.log("works") 
     }, 1000) 
    } 

    /** 
    * arrow function method 
    */ 
    method2 =() => { 
     // give an error: 'this' is not allowed before super() 
     this.state = "hello"; 
    } 
} 
new app(); 

więc jestem trochę zdezorientowany. Czy to naprawdę niepoprawna składnia? Jak mogłem używać tego pre-babel6?

+0

Jak przeprowadzasz przeglądanie/babelify? Jakie wersje modułów masz zainstalowane? – CodingWithSpike

+0

Realizuję za pośrednictwem [modu-deps] (https://www.npmjs.com/package/module-deps), wszystko jest w najnowszej wersji. –

Odpowiedz

6

to Babeljs bug

Zobacz

Mam nadzieję, że będzie to zobaczyć szybki fix.

edycja # 2942 nie odwołuje się do tego samego błędu. Oto problem następujący po tym błędzie: #3028

+0

# 2942 jest zamknięty i mówią, że 6.1.18 jest naprawiony. Po prostu zaktualizowano npm i dodano funkcję strzałki. Nadal spłukany. To z babelify, jeśli robi różnicę. –

+0

To samo, wciąż dostaję wszelkiego rodzaju błędy z Babel6 rzekomo naprawione błędy, próbując zrestrukturyzować moje klasy, które były idealnie w porządku w 5, ... rodzaju zmęczenia. – Marian

+2

Mam zamiar przetestować i zobaczyć, czy nadal mogę odtworzyć błąd. Ale pochodzą z ich bloga: "Nie wszystkie integracje zostały zaktualizowane, jest to bardzo uciążliwe zjawisko, więc proszę, zważcie na nas, gdy wygładzimy krawędzie". Więc sugerowałbym trzymanie się 5, dopóki większość błędu nie zostanie naprawiona –

3

To zależy trochę od sposobu wykonywania browserify, to co repozytorium Github z babelify (https://github.com/babel/babelify) mówi o niej:

Z CLI:

$ browserify script.js -o bundle.js \ 
-t [ babelify --presets [ es2015 react ] ] 

z węzłem :

browserify("./script.js") 
    .transform("babelify", {presets: ["es2015", "react"]}) 
    .bundle() 
    .pipe(fs.createWriteStream("bundle.js")); 
+0

'transform (" babelify ", {presets: [" es2015 "," react "]})' to co nie działa –

+0

Czy zainstalowałeś presety? 'npm install --save-dev babel-preset-es2015' – Timon

+0

tak Mam wszystko poprawnie zainstalowane –

Powiązane problemy