如何在节点项目中使用babel编译的类?
这是一个非常简单的课程,我正在testing在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");
但是当我做到以下我得到一个“车不是一个function”的错误:
var blueCar = new Car('blue');
我正在运行节点v5.8,如果这在这种情况下有所作为?
1)您可以从ES中的模块import
默认值,并将其传输:
import Car from 'js-models/lib/Car'; let blueCar = new Car('blue');
2)你可以出口Car
类,transpile,并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');