LINUX.ORG.RU

История изменений

Исправление no-such-file, (текущая версия) :

но в A «видит» B, а B не видит A

Надо require делать внутри функции. Типа

const A = () => require("A");

Тогда во время загрузки B не будет требоваться A, а только при первом использовании.

console.log(a) // {} empty onj

Потому что в этот момент A который начал загружаться раньше, ещё ничего не экспортировал. Тебе нужно отложить момент требования, например как я написал выше. Получится

const A = () => require("A");

...

function somethingUsingA() {
   ...
   A().fromA() // В этот момент A будет уже полностью загружен
}

Другой вариант, передавать модуль явно как параметр и убрать взаимный require.

const A = require('A') // внутри B явно не требуется
const B = require('B') // внутри A явно не требуется

// Функции в A и B
function someFoo(A,B) {
   ...
}

Исправление no-such-file, :

но в A «видит» B, а B не видит A

Надо require делать внутри функции. Типа

const A = () => require("A");

Тогда во время загрузки B не будет требоваться A, а только при первом использовании.

console.log(a) // {} empty onj

Потому что в этот момент A который начал загружаться раньше, ещё ничего не экспортировал. Тебе нужно отложить момент требования, например как я написал выше. Получится

const A = () => require("A");

...

function somethingUsingA() {
   ...
   A().from() // В этот момент A будет уже полностью загружен
}

Другой вариант, передавать модуль явно как параметр и убрать взаимный require.

const A = require('A') // внутри B явно не требуется
const B = require('B') // внутри A явно не требуется

// Функции в A и B
function someFoo(A,B) {
   ...
}

Исходная версия no-such-file, :

но в A «видит» B, а B не видит A

Надо require делать внутри функции. Типа

const A = () => require("A");

Тогда во время загрузки B не будет требоваться A, а только при первом использовании.