我有这个目录结构:
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
注意:@是根目录的绝对路径,它使用Web Pack别名,但是没有别名也将不起作用-即使使用“直接”导入,例如:require('./index')
< / p>
模块1不仅需要从同一example-dir1导入模块2,有时还需要从其他目录导入其他模块,例如:
// module1.js
const { module3 } = require('@example-dir2');
console.log(module3); // undefined
但是,如果我尝试在不是 start-dir 子目录的目录上执行相同的操作(请注意,这是示例的根目录),它将起作用。
所以问题出在尝试导入一个模块,该模块在其中导入和导出当前模块
如何解决?