У меня такая структура каталогов:
start-dir
example-dir1
module1.js
module2.js
index.js
...other-directories...
example-dir2
module3.js
module4.js
index.js
...other-directories...
Файл index. js импортирует module1 и 2 и экспортирует их как объекты:
exports.module1 = require('./module1');
exports.module2 = require('./module2');
Затем в module1. js Я хочу включить module2. js - используя index. js вот так:
// module1.js
const { module2 } = require('@example-dir1');
console.log(module2) // undefined
Примечание: @ - это абсолютный путь к каталогу root, здесь используется псевдоним веб-пакета , но без псевдонима он также не будет работать - даже при использовании «прямого» импорта, например: require('./index')
Модуль 1 не только должен импортировать модуль 2 из того же example-dir1, но иногда и необходимо импортировать другие модули из других каталогов, например:
// module1.js
const { module3 } = require('@example-dir2');
console.log(module3); // undefined
Но если я попытаюсь сделать то же самое, но с каталогами, которые не являются дочерними по отношению к start-dir (примечание что это каталог root в примере), он будет работать.
Итак, проблема заключается в попытке импортировать модуль, который импортирует и экспортирует текущий модуль в нем
Как это исправить?