我想找到一種方法使babel加載文件按特定的順序,以便超類在子類之前加載。BabelJS類使用繼承時的排序
給出下面的文件的一個例子:
SRC/fruit.js:
export class Fruit{
constructor(color){
this._color = color;
}
}
SRC/apple.js:
export class Apple extends Fruit{
constructor(){
super("green");
}
}
SRC/xecute.js:
var theApple = new Apple();
package.json
{
"name": "fruit",
"version": "1.0.0",
"description": "Fruit JS",
"scripts": {
"build": "babel src -o out/fruit-bundle.js"
},
"author": "Toby Nilsen",
"license": "MIT",
"devDependencies": {
"babel-cli": "^6.22.2",
"babel-preset-es2015": "^6.5.0"
}
}
.babelrc:
{
"presets": ["es2015"]
}
當我編譯我的文件下面的命令
npm run build
而且隨着運行我出/水果bundle.js:
node out\fruit-bundle.js
我得到了follwing錯誤:
TypeError: Super expression must either be null or a function, not undefined
這是因爲babel在fruit.js之前解析了apple.js。我可以通過將我的文件重命名爲0_fruit.js和1_apple.js來解決這個問題,但是我想知道是否有任何方法讓babel解決依賴關係並對輸出進行排序,以便首先加載超類。
「*是任何方式爲babel解決依賴關係*」 - 它已經這樣做自動。你的問題是你忘了**在'apple.js'中聲明依賴關係** - 你需要從'。/ fruit.js''導入{Fruit}! – Bergi