Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[wip] feat: qiankun runtime support mfsu #665

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

xiefengnian
Copy link
Contributor

使用 import 代替 require 语句

@@ -27,7 +28,6 @@ function testPathWithStaticPrefix(pathPrefix: string, realPath: string) {

function testPathWithDynamicRoute(dynamicRoute: string, realPath: string) {
// FIXME 这个是旧的使用方式才会调到的 api,先临时这么苟一下消除报错,引导用户去迁移吧
const pathToRegexp = require('path-to-regexp');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

想起来了,之前这么搞是有原因的,看下上面一行的注释😂

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

和 import 还是 require 应该没关系吧

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

import 因为是静态的,不管用没用都会引入这个包的代码,这个在一些场景下会抛警告

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

那...用户什么时候能迁移完呢

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

import 因为是静态的,不管用没用都会引入这个包的代码,这个在一些场景下会抛警告

可以给个场景吗😮

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

应用自己在包里引用了 path-to-regexp v6 版本,但是插件依赖的是 v1,导致 api 调用失败。
插件不会引自己声明的包的原因是,common.ts 再编译时被移到 .umi 里了,所以找到的是应用自己声明的包。

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

v6 版本的 path-to-regexp 没有 default export,所以会触发一个 warning

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感觉得换成绝对路径才行。

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

绝对路径也不好搞,因为当应用没有自己引 path-to-regexp 时,插件引入的就会被 hoist 到根 node_modules 里,而不是插件自己的 node_modules 下。

最好的方式是把这段逻辑下线。
不过 mfsu 的场景下因为要把插件的 runtime 代码都挪到 .umi 里,一旦插件自己引的包跟应用引的版本不一致,都会出现这种问题

@afc163
Copy link
Contributor

afc163 commented Dec 1, 2021

图片

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants