所以我一直在ES6中做一些編碼,並試圖弄清楚導入/導出的東西是如何工作的。在Meteor中使用ES6導入和導出爲時過早嗎?
/lib/globalcode.js
'use strict';
let globalCode = {
add: (x,y) => {
return add(x,y);
}
};
let add = (x,y) => {
return x + y;
};
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(this.name + ' makes a noise.');
}
};
export { Animal, globalCode };
/client/index.js
import { Animal, globalCode } from '/lib/globalcode.js';
Template.index.onRendered(() => {
let animal = new Animal('cat');
animal.speak();
console.log(globalCode.add(5,6));
});
當我進入Chrome瀏覽器開發工具從animal.speak()
和console.log(globalCode.add(5,6))
輸出做顯示出來,但是當我手動鍵入let animal = new Animal('cat')
和globalCode.add(5,6)
到控制檯我分別得到Animal not defined
和globalCode
未定義。
顯然沒有瀏覽器正式支持ES6模塊還沒有,但我爲什麼console.log(globalCode.add(5,6))
和let animal = new Animal('cat');
工作從index.js
運行,但無法從瀏覽器中運行時,當迷茫。
上述限制使調試非常困難。目前最好遠離ES6模塊嗎?他們是否完全支持Meteor服務器端?
Bah,同樣的事情仍然發生。我編輯了OP來將我的'import'帶到文件的頂部。 – fuzzybabybunny