Conversation
|
|
||
| function testPathWithDynamicRoute(dynamicRoute: string, realPath: string) { | ||
| // FIXME 这个是旧的使用方式才会调到的 api,先临时这么苟一下消除报错,引导用户去迁移吧 | ||
| const pathToRegexp = require('path-to-regexp'); |
There was a problem hiding this comment.
和 import 还是 require 应该没关系吧
There was a problem hiding this comment.
import 因为是静态的,不管用没用都会引入这个包的代码,这个在一些场景下会抛警告
There was a problem hiding this comment.
那...用户什么时候能迁移完呢
There was a problem hiding this comment.
import 因为是静态的,不管用没用都会引入这个包的代码,这个在一些场景下会抛警告
可以给个场景吗😮
There was a problem hiding this comment.
应用自己在包里引用了 path-to-regexp v6 版本,但是插件依赖的是 v1,导致 api 调用失败。
插件不会引自己声明的包的原因是,common.ts 再编译时被移到 .umi 里了,所以找到的是应用自己声明的包。
There was a problem hiding this comment.
v6 版本的 path-to-regexp 没有 default export,所以会触发一个 warning
There was a problem hiding this comment.
绝对路径也不好搞,因为当应用没有自己引 path-to-regexp 时,插件引入的就会被 hoist 到根 node_modules 里,而不是插件自己的 node_modules 下。
最好的方式是把这段逻辑下线。
不过 mfsu 的场景下因为要把插件的 runtime 代码都挪到 .umi 里,一旦插件自己引的包跟应用引的版本不一致,都会出现这种问题

使用 import 代替 require 语句