【发布时间】:2016-07-02 23:46:15
【问题描述】:
这是我正在测试用 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");
但是当我执行以下操作时,我收到“Car is not a function”错误:
var blueCar = new Car('blue');
如果在这种情况下有所不同,我正在运行 node v5.8?
【问题讨论】:
-
你试过 var Car = require("js-models/lib/Car"); 吗?没有.Car?您使用默认导出,因此 .Car 将是未定义的。
-
这是我的问题的一个错字。实际代码最后没有 .Car ,即使没有它,它仍然无法工作:虽然很好
-
你试过不转译而是使用 babel-node 吗?
-
检查版本,因为最新版本的 Babel 给出了以下结尾:
exports["default"] = Car; module.exports = exports["default"]; -
这是标准问题的问题
标签: node.js ecmascript-6 babeljs transpiler