es6导出/导入多个类 – instanceof返回false

test1.js

export class ValidationError extends Error { constructor (msg) { super(msg) } } export class ServerError extends Error { constructor (msg) { super(msg) } } 

test2.js

 import * as errors from './test1' const inst = new errors.ValidationError('msg') console.log(inst instanceof errors.ValidationError) 

当我运行test2输出是falsetrue预期)。

问题不是import 。 这是巴别。 内置类的inheritance是ES6function 。 在经过转换的ES5代码中,它将不能正常工作。

上面的代码可能会导致出现ValidationErrorError实例的混合。

解决scheme是不传输Node已经支持的function。 应使用自定义预设,例如, babel-preset-es2015-node6babel-preset-eslatest-node6