2017-09-25 47 views
1

我需要重構一些JavaScript代碼,並試圖使用本機導入/導出命令來實現ES6模塊。我努力了一段時間纔得到這個工作,所以我將記錄下需要完成的工作以備將來參考。實現本機ES6模塊的「意外令牌導入」

的症狀是我收到的Chrome瀏覽器控制檯以下消息:

Uncaught SyntaxError: Unexpected token import 

我進行測試的基本代碼是:

HTML:

<!DOCTYPE html> 
<html> 
<body> 
<h1>Import test</h1> 
</body> 
<script type="application/javascript" src="./import.js"></script> 
</html> 

import.js:

import { apath } from './alert_path'; 

alert_path.js:

export function apath() { 
    alert('Bang!!!'); 
} 

回答

2

我必須採取兩項措施來解決此問題。

首先,Chrome必須在61+或Chrome://標誌必須啓用實驗性Web平臺功能。

其次,腳本標籤必須使用類型的模塊:

<!DOCTYPE html> 
<html> 
<body> 
<h1>Import test</h1> 
</body> 
<script type="module" src="./import.js"></script> 
</html> 

我發現在什麼基礎的第二個答案here

模塊必須最終包含在您的HTML中,其中type =「module」, 可以顯示爲內嵌或外部腳本標記。

OBTW,樣品將無法因違反CORS後,除非它是通過一臺服務器上運行,這是解決但這是另外一個問題。

+0

是的,ES6模塊的支持是非常低的atm。你可以使用像system.js這樣的東西來填充 - > https://github.com/systemjs/systemjs – Keith