我正在导出以下课程:
export default class Tester {
}
问题是,当我将其转换并导入时:
const Tester = require('./dist/Tester');
问题是要使用Tester类,我需要像这样使用它:
const example = new Tester.Tester();
我如何导出它,所以我这样做:
const example = new Tester();
您可以尝试修改导入块以使用对象分解:
const { Tester } = require('./dist/Tester');
奇怪的语法实际上是由您使用2种不同的导入/导出方言es6和commonjs引起的。通过Babel转换,您可以在同一系统中使用这两种方法。
在es6中
export
编写import
编写示例:
// -- es6
// tester.js
export default class Tester {} // default export
export const SomeConsts = {} // named export
// main.js
import Tester, { SomeConsts } from "./tester";
在commonjs的nodejs实现中
module.exports
编写require()
编写示例:
// -- commonjs
// tester.js
class Tester {}
const SomeConsts = {}
module.exports = { Tester, SomeConsts } // arbitrary export
// main.js
const TesterModule = require("./tester.js");
const Tester = TesterModule.Tester;
const SomeConsts = TesterModule.SomeConsts;
// --or--
const { Tester, SomeConsts } = require("./tester.js");
编辑:
如果要使Tester
类成为导出的根并且仍然要导出SomeConsts
,则必须使SomeConsts
成为Tester
类的一部分。
// -- commonjs
// tester.js
class Tester {
static SomeConsts = {}
}
module.exports = {}
// main.js
const Tester = require("./tester.js")
const TesterInstance = new Tester():