Tôi đang sử dụng ES6 modules được chuyển đến ES5 với traceur.
Việc biên dịch được thực hiện thông qua grunt + grunt-traceurMô-đun ES6 JavaScript + traceur
Traceur cho phép bạn chọn trình xử lý mô-đun để sử dụng: riêng, AMD, commonJS hoặc nội tuyến.
Tôi đã thử hầu hết trong số họ, nhưng dường như không ai làm việc. Tại sao?
TestClass.js
export default class TestClass {
constructor() {
alert('test');
}
}
Main.js
import TestClass from './TestClass';
var test = new TestClass();
Gruntfile.js (trích)
traceur: {
options: {
experimental: true,
blockBinding: true,
modules: 'amd'
}
}
index.html (trích)
<script src="js/vendor/traceur-runtime.js"></script>
<script src="js/vendor/require.js"></script>
<script defer async src="js/compiled/Main.js"></script>
Lỗi đưa
Uncaught Error: Mismatched anonymous define() module: function ($__0) {
Dường như there are issues với các plugin grunt, nhưng thậm chí sử dụng một phiên bản cũ dường như không giúp đỡ.
Mã được điều chỉnh từ an article.
Bạn cũng có thể muốn xem [6to5] (http://6to5.github.io/). Nó có rất dễ sử dụng [module formatters] (http://6to5.github.io/modules.html) trong một số định dạng khác nhau mà chơi tốt với các công cụ khác. –