我想重构我的Nodejs / Babel 7应用程序。这是一个带有Bookshelf.js模型的GraphQL应用程序,用于控制数据库。因此,我将代码分为几部分:
到目前为止,一切都很好。在重构模块之前,直接导入了某些其他模块,因此希望进行漂亮的单行导入,例如:
import {Contact, Product, Set, Content, User} from 'models/Models'
但是...这是一个问题。我的模块之间相互依赖。我的意思是,模型有时会导入服务或类型,服务可能会导入模型,依此类推。运行代码时,我发现了一堆“预期的东西,但发现未定义的”错误。我研究了此问题,发现这是由于循环依赖关系导致的-我的索引文件未完全加载,因此它们返回的是未定义的。有趣的是,在我重新组织代码之前,一切都可以正常工作(因此,循环依赖没有真正的问题,可以通过编译器解决它们,但是当我使用“索引”文件来构造导入时,它就无法实现)。
显而易见的解决方案是返回以前的结构并继续使用它,但这只是短期解决方案。我该如何解决这个问题?
“索引”文件示例(已修剪):
export { default as Contact } from 'models/ancestor/Contact'
export { default as Content } from 'models/ancestor/Content'
export { default as UserData } from 'models/mega/UserData'
export { default as Action } from 'models/organization/Action'
export { default as Connection } from 'models/organization/Connection'