问题
我在monorepo-common-ui
和data-manager-ui
中有两个React项目。 data-manager-ui
对npm file:
具有common-ui
依赖性。这两个项目都可以正常构建和运行。 common-ui
是使用Material UI的某些组件的集合/库。 data-manager-ui
只是在应用程序入口点app.tsx中渲染common-ui
中的组件。
data-manager-ui
还包括一个简单的测试文件app.test.tsx,该文件使用Jest和React Testing库测试app.tsx。
但是运行测试会产生此错误:
TypeError:react_2.default.createElement不是一个函数|在对象。 (src / app / app.test.tsx:9:31)
复制步骤
我在此repository中重新创建了一个最小设置,其配置与我要解决此问题的主项目中的配置相同。
common-ui
项目根目录构建npm run build
: common-ui
data-manager-ui
项目根目录运行npm run start
: data-manager-ui
(这会在http:// localhost:7002上部署data-manager-ui
)data-manager-ui
测试:从npm run test
项目根目录开始data-manager-ui
TypeError: react_2.default.createElement is not a function
尝试的事情
由于npm file:
的依赖性,我知道data-manager-ui
项目将以两个版本的React / Material UI(自己的依赖性以及common-ui
依赖性)结束。为了避免这种情况,我有:
common-ui
Webpack外部here data-manager-ui
Webpack别名here data-manager-ui
Webpack别名here 我想我在那里缺少一些配置。如果common-ui
作为软件包发布并使用,则错误消失并且测试运行正常。但是在此阶段,发布common-ui
对我来说不是一种选择,因此,我被阻止了。任何帮助/指针将不胜感激。
谢谢。