ES6完整项目中的模块

时间:2016-02-24 15:03:42

标签: javascript class module project ecmascript-6

2016年ES6发布,Chrome Canary对新的ECMA脚本有93%的支持。

所以我尝试以ES6的方式使用模块。

像:

http://exploringjs.com/es6/ch_modules.html#_default-exports-one-per-module

    Or a class:

//------ MyClass.js ------
export default class { ··· } // no semicolon!

//------ main2.js ------
import MyClass from 'MyClass';
const inst = new MyClass();

为了解决这个问题,我创建了一个index.html文件和两个像上面描述的文件,其中包含一些MyClass的简单内容,如:

constructor(name) {
    this.name = name;
    this.currentSpeed = 25;
}

所以我有:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <module src="MyClass.js"></module>
    <script type="text/javascript" src="main2.js"></script>
</head>
<body>
<p>Hallo:)</p>
</body>
</html>
index.html中的

    export default class {
    constructor(name) {
    this.name = name;
    this.currentSpeed = 25;
}}

在MyClass.js和

import MyClass from 'MyClass';
const inst = new MyClass();

在main2.js

这对我不起作用。每次在main2.js中导入错误。 有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

这里有两件事:

  1. 浏览器实际上还没有提供ECMAScript模块支持。我想,在他们这么做的时候,它将遍布Twitter。
  2. 您需要使用<script type=module src=modulescript.js>在HTML中使用模块脚本。 (工作人员也new Worker("moduleworker.js", {type:"module"}),但同样,还不支持。)