【发布时间】:2018-08-26 13:13:12
【问题描述】:
我不明白为什么这个琐碎的代码不起作用:
index.html:
<!doctype HTML>
<html>
<head>
<script type="module" src="/showImport.js"></script>
</head>
<body>
<button onclick="showImportedMessage();">Show Message</button>
</body>
</html>
showImport.js:
import showMessage from '/show.js';
function showImportedMessage() {
showMessage();
}
show.js:
export default "Why do I need this?";
export function showMessage() {
alert("Hello!");
}
它由 NPM http-server 提供服务。当我连接 Chrome (v65) 时,我看到以下错误
(index):8 Uncaught ReferenceError: showImportedMessage is not defined
at HTMLButtonElement.onclick ((index):8)
onclick @ (index):8
如果我摆脱 type=module(并通过将 showMessage 函数直接放入 showImport.js 来导入/导出)一切正常,但这样做的全部目的是使用模块。
我还必须添加那个无用的 export default 声明,没有它 Chrome 会抱怨:
Uncaught SyntaxError: The requested module '/show.js' does not provide an export named 'default'
那么我在这里错过了什么?
【问题讨论】:
标签: javascript import ecmascript-6 module