Как использовать класс, скомпилированный babel, в проекте узла?
Вот очень простой класс, который я тестирую, написанный в es2015:
"use strict";
class Car {
constructor(color) {
this.color = color;
}
}
export default Car;
Я использую babel-cli для переноса этого класса, чтобы он мог использоваться в узле... это вывод:
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Car = function Car(color) {
_classCallCheck(this, Car);
this.color = color;
};
exports.default = Car;
В моем проекте узла я включаю этот модуль так:
var Car = require("js-models/lib/Car");
Но когда я делаю следующее, я получаю ошибку "Автомобиль не является функцией":
var blueCar = new Car('blue');
Я использую узел v5.8, если это имеет значение в этом случае?
1 ответ
Решение
1) Вы можете import
по умолчанию из модуля в ES и переносить их:
import Car from 'js-models/lib/Car';
let blueCar = new Car('blue');
2) Вы можете экспортировать Car
класс, транспорт и require
:
// module js-models/lib/Car
"use strict";
export class Car {
constructor(color) {
this.color = color;
}
}
// node project
var Car = require("js-models/lib/Car").Car;
var blueCar = new Car('blue');