Странный синтаксис на самом деле вызван тем, что вы используете 2 разных диалекта импорта / экспорта, es6 и общий js. Babel Transpilation позволяет использовать оба в одной системе.
В es6
- экспорт записывается с
export
- импорт записывается с
import
Пример:
// -- es6
// tester.js
export default class Tester {} // default export
export const SomeConsts = {} // named export
// main.js
import Tester, { SomeConsts } from "./tester";
В nodejs реализация общего js
- экспорт записывается с
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
класс для быть root экспорта и все еще хотеть экспортировать SomeConsts
, вам нужно будет сделать SomeConsts
частью Tester
класса.
// -- commonjs
// tester.js
class Tester {
static SomeConsts = {}
}
module.exports = {}
// main.js
const Tester = require("./tester.js")
const TesterInstance = new Tester():