javascript - Babel,ES6,Webpack - 解构导入的解构
问题描述
开发以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
从 undefined 导入它。
现在我只是在做
import {Banana} from 'fruits/banana';
import {Apple} from 'fruits/apple';
它以这种方式工作得很好。但是,我希望它是
import {Banana, Apple} from 'fruits';
const {bite} = Banana;
关于可能导致这种情况的任何想法?
我应该怎么做才能使代码保持我想要的方式(见上文)?
解决方案
毕竟,在我们自己的特定设置中,这是一个循环依赖问题(webpack 有时会为直接引用或不引用它们的脚本的脚本返回 undefined。
我们index.js
在每个文件夹中都有一个脚本(例如fruits
),其中一个模块使用另一个模块(例如,使用fromBanana
的导入,而不是直接引用它,)Pineapple
fruits
fruits/Pineapple
这个问题一劳永逸地教会了我在每个 webpack 构建中使用循环依赖插件(并避免循环依赖)
推荐阅读
- google-bigquery - 如果来自信息架构的 bigquery 属性,如何获取策略标签
- c - 修改rodata字符串文字
- firebase - 如果文档的属性与请求属性匹配,则读取 Firebase Firestore 文档
- c - 用于同步的全局信号量 - 计数器
- java - 在 NetBeans 12.0 中,我收到错误无法访问 java.lang
- node.js - 通过 id 属性使用 gridfs 存储桶从文件集合中检索文档时遇到问题
- python - 使用 Python 嗅探协议
- java - 如何在 Maven 发布插件中使用“projectVersionPolicyId”?
- go - Golang for 似乎跳过了一些实体
- python - Python:ndarray 的 nanargmax 版本