Reputation: 14526
I was surprised to find that in Babel, I could have two modules import
each other without any issues. I have found a few places that refer to this as a known and expected behaviour in Babel. I know that this is widely considered an anti-pattern by a lot of (I'm guessing most) people, but please ignore that for this question:
Does anyone know if this is (or will be) correct behaviour in ES6/7?
The closest thing I can find to an official answer (and technical explanation) is this comment on 2ality.com
Upvotes: 13
Views: 5515
Reputation: 13838
It's usually considered bad practices. But ES modules are designed to support cyclic dependencies. There are some information in ES 2017 spec 15.2.1.16.3ResolveExport Concrete Method. However, I think it's really hard to read (to be honest, I suffer a lot). The post you mentioned from 2ality.com might be better readable.
Upvotes: 7
Reputation: 2407
I work with nodeJS, so it's kinda the same. From what I know, "require cycles" are not illegal, even if it's often best to avoid them. If there is a cycle, nodeJS at least will handle that: it will not require the second time.
Upvotes: 2