[英]Export node.js class to be used with require()
我正在导出以下类:
export default class Tester {
}
问题是,当我转译它并将其导入时:
const Tester = require('./dist/Tester');
问题是要使用 Tester 类,我需要像这样使用它:
const example = new Tester.Tester();
我怎样才能导出它,所以我这样做:
const example = new 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():
您可以尝试修改导入块以使用对象解构:
const { Tester } = require('./dist/Tester');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.