ES6导入无效

时间:2018-08-07 06:31:20

标签: javascript

RegularOpeningHour.joins(:opening_times).where(dayOfWeek: Time.zone.now.wday).where('? BETWEEN opening_times.opens AND opening_times.closes', Time.zone.now).any?

b.js

const x = 1; export {x};

a.js

import {x} from 'b'; // <<-- ERROR console.log(x);

index.html

错误:

  

未捕获的SyntaxError:意外令牌{

我正在使用WebStorm,并在Win7中的Chrome中运行该项目。


更新:

我将<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script src="a.js"></script> </body> </html> 的内容更改为:

index.html

错误:

  

未捕获的TypeError:无法解析模块说明符“ b”。相对引用必须以“ /”、“./”或“ ../”开头。   enter image description here

似乎未加载<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script src="a.js" type="module"></script> </body> </html>

1 个答案:

答案 0 :(得分:5)

要使用ES6模块,您必须使用type="module"加载脚本-这样可以确保不了解ES6模块的浏览器不会窒息

下一步,要导入,必须指定导入文件的路径和完整文件名

查看代码中的注释

b.js

const x = 1;
export {x};

a.js

// specify the path and full filename below
import {x} from './b.js'; // <<-- NO ERROR NOW
console.log(x);

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!-- add type="module" -->
<script src="a.js" type="module"></script>
</body>
</html>