javascript - ECMAScript 6 ne radi iako je eksperimentalni JS omogućen
Imam najnoviju verziju Chromea (45 i također Chrome Canary koji je u verziji 47), oba s omogućenom eksperimentalnom JavaScript zastavicom. Želim koristiti ECMAScript 6, ali ne radi. Ne znam zašto. Postoji li neki trik ili druga zastavica koja također mora biti omogućena?
Svaka rezervirana riječ ECMAScript 6 (poput import, class ili bilo koje druge) izaziva „Nepotvrđena SyntaxError: Neočekivana rezervirana riječ” u Chromeu 45 i „Nepotvrđena SyntaxError: Neočekivani token import” u Chrome Canaryju.
Pitao sam ovo prije nekoliko mjeseci, ali nisam dobio nikakav odgovor osim 'mogući duplikat' pitanja 'Korištenje ECMAScripta 6', ali to ne rješava moj problem.
Želim koristiti module, budući da mi se više sviđaju ECMAScript moduli nego korištenje require iz CommonJS-a. Također mi se sviđa i sintaksni šećer klasa — kod izgleda bolje.
Odgovor #1
Moduli još nisu izvorno podržani u nijednom pregledniku. Trebat će vam transpiler poput Traceura ili Babela. Pogledajte jedan od sljedećih kako biste započeli:
- Odaberite ES6 module danas!
- ES6 Duboko: Korištenje ES6 danas s Babelom i Brocolijem
- Pisanje klijentske strane ES6 s webpackom
Što se tiče klasa, možda ćete moći koristiti ove nativno bez potrebe za prolaskom kroz transpajler. Ovdje možete provjeriti tablicu kompatibilnosti kako biste vidjeli koji preglednici danas nativno podržavaju klase:
https://kangax.github.io/compat-table/es6/
Trenutno možete vidjeti da većina preglednika još uvijek ne podržava klase izvorno. Međutim, ako koristite Babel ili Traceur, to ne bi trebao biti problem.
Odgovor #2
Dodajte type="module" u script oznaku. To bi trebalo riješiti vaš problem.