从另一个包中导入时,导入返回未定义

时间:2020-01-28 11:06:42

标签: javascript webpack yarnpkg

我有一个非常奇怪的错误。想象一下,我有一个包含纱线工作区的存储库设置,其中包含:

  • 主题
  • ui
  • addon-1
  • addon-2

我的theme软件包中有一个index.js文件,该文件会导出以下组件:

export { default as Markdown } from './components/markdown';
export { default as Image } from './components/image';

降价:

import { Display } from 'ui'
//...

图片:

import { Display } from 'ui'
//...

现在有趣的部分。 addon-1使用import { Markdown } from 'theme',效果很好。 addon-2使用import { Image } from 'theme'并加载了Image,但是Display或更确切地说是整个ui尚未定义。 ui中仍使用相同的Markdown软件包。在相同的node_modules文件夹中,它是相同的包。为什么?我不明白此外,当我通过相对路径从同一包中的另一个组件导入Image时,它可以工作。我不明白。

有人有主意吗?

我已经尝试过重置所有内容。.删除node_modules,删除yarn.lock,运行yarn cache clean ..我什至尝试从index.js删除导出,并通过import Image from 'theme/components/image'直接导入Image。从默认切换到命名导出。

1 个答案:

答案 0 :(得分:0)

好问题通过反复试验解决。 我的代码是绝对正确的,但是我在导入之前从另一个包中重新导出了内容。我仍然不知道为什么,但是当我不重新导出它们,而是直接从另一个包中导入它们时,就可以了。