正在开发以create-react-app
开头的应用。
在我的代码中,我有多个命名的导入,写成这样:
import {Banana, Apple} from 'fruits'
fruits
模块是其中包含index.js
的文件夹,其中包含export {Banana} from './banana'
。./banana
导出对象Banana = {bite: ()=>{}}
。所以我期望
Foo
是在banana
中导出的对象。
现在,我正在尝试做类似的事情
const {bite} = Banana;
该捆绑包构建成功,但是当我运行它时-失败,表示无法从bite
获得undefined
。
对我来说真正奇怪的是-以前没有发生过,但是后来就开始发生了,没有任何特殊原因。但是有时候Jest也会发生这种情况-无法从未定义的导入bite
。
现在我正在做
import {Banana} from 'fruits/banana';
import {Apple} from 'fruits/apple';
,它以这种方式正常工作。但是,我希望它是
import {Banana, Apple} from 'fruits';
const {bite} = Banana;
关于什么原因的任何想法?
我该怎么做才能保持所需的代码(见上文)?
答案 0 :(得分:1)
毕竟,在我们自己的特定设置中,结果证明这是一个循环依赖问题(对于某些直接引用或不引用其使用脚本的脚本,webpack有时返回undefined。
每个文件夹(例如index.js
)中都有一个fruits
脚本,其中一个模块使用了另一个模块(例如Banana
使用了从{{1 }},而不是直接引用它,Pineapple
)
这个问题一劳永逸,教我在每个Webpack构建中都使用circular-dependency-plugin(并避免循环依赖)