2017-01-18 24 views
15

Ben ES6 (ECMAScript'e 6) yeniyim ve ben tarayıcıda modül sistemini kullanmak istiyorum. Ben ES6 Firefox ve Chrome tarafından desteklenir, ancak ben exportES6: Yakalanmayan SyntaxError: Beklenmeyen belirteç ithalat

Uncaught SyntaxError: Unexpected token import

Bir test.html dosyasını

<html> 
    <script src="test.js"></script> 
<body> 
</body> 
</html> 

ve test.js dosyasına sahip kullanarak aşağıdaki hatayı alıyorum okumak

'use strict'; 

class Test { 

    static hello() { 
     console.log("hello world"); 
    } 
} 

export Test;  

Neden?

+0

ES6 * modülleri * henüz tarayıcıda desteklenmemektedir. Ayrıca hala bir komut dosyası değil, bir modül yüklüyorsunuz. – Bergi

+2

Hala bir komut dosyası ile bir modül arasındaki farkı anlamıyorum – cdarwin

+0

Bkz. [Burada] (http://stackoverflow.com/a/39652842/1048572) – Bergi

cevap

14

Maalesef, modüller şu anda pek çok tarayıcı tarafından desteklenmiyor.

This feature is only just beginning to be implemented in browsers natively at this time. It is implemented in many transpilers, such as TypeScript and Babel, and bundlers such as Rollup and Webpack.

Google Chrome Beta (61)/Krom Canary ES6 Modülleri deneyebilirsiniz MDN

+0

Bu özelliğin bir Sof sorusunda uygulandığını okudum, ancak MDN kaynağı aslında daha güvenilir. – cdarwin

+0

Aşağıdaki bağlantıya göre Chrome 61, içe aktarmayı desteklemelidir - öyle değil. https://medium.com/dev-channel/es6-modules-in-chrome-canary-m60-ba588dfb8ab7 – Marc

16

Bulundu. Paul İrlandalılar tarafından Yapılacaklar MVC

Referans Uygulaması - https://paulirish.github.io/es-modules-todomvc/

Ben ettik temel demo -

//app.js 
 
import {sum} from './calc.js' 
 

 
console.log(sum(2,3)); 
 

 
//calc.js 
 
let sum = (a,b) => { return a + b; } 
 

 
export {sum};
<html> 
 
    <head> 
 
     <meta charset="utf-8" /> 
 
    </head> 
 

 
    <body> 
 
     <h1>ES6</h1> 
 
     <script src="app.js" type="module"></script> 
 
    </body> 
 

 
</html>

yardımcı olur Umut!

+9

Bu doğru ... Fark ettiğim önemli kısım '' '" 'aksi takdirde eklediğinizden emin olun, bu hatayı alırsınız. Ben sürekli olarak "' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'ı''''s artık bayrakları olmadan ES6 modüllerini desteklemek için söylenir, o zaman ben tarayıcıya belirtmek için tür özniteliğinin gerekli olduğunu fark ettim Bu bir ES6 modülüdür. –

İlgili konular