Babel,ES6,Webpack-销毁销毁的进口商品

时间:2018-09-07 09:40:20

标签: javascript webpack babel create-react-app

正在开发以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;

关于什么原因的任何想法?

我该怎么做才能保持所需的代码(见上文)?

1 个答案:

答案 0 :(得分:1)

毕竟,在我们自己的特定设置中,结果证明这是一个循环依赖问题(对于某些直接引用或不引用其使用脚本的脚本,webpack有时返回undefined。

每个文件夹(例如index.js)中都有一个fruits脚本,其中一个模块使用了另一个模块(例如Banana使用了从{{1 }},而不是直接引用它,Pineapple

这个问题一劳永逸,教我在每个Webpack构建中都使用circular-dependency-plugin(并避免循环依赖)