Codesandbox引入formily/antd组件后无法正常运行 #3872
Unanswered
hetianyu0315
asked this question in
Q&A [2.x]
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
目前在codesandbox中引入formily/antd组件后,无法正常运行,在社区中交流可能会无法马上给出一个可复现的直观的demo。本质原因不在formily这边,但是可能可以做一些处理。因技术水平有限,斗胆胡说一下。
codesandbox地址:
https://codesandbox.io/s/admiring-hodgkin-m6h85z?file=/src/App.js
步骤:
1、formily/antd生成的包中,所有组件没有css文件,只有less文件,并且会调用antd的less文件。
2、antd组件中,有些less文件中的import的url是不带后缀的,但是生成的包中有css文件
3、在codesandbox中引入formily/antd组件库后,读取到less文件,会触发less-transpiler.worker.js的脚本执行。其中import-manage.js中loadFileCallback方法会读取less文件内容。但是遇到上面不带文件后缀的import,就会读不到文件的内容,从而抛出一个错误,并停止渲染
思考:
根本原因是codesandbox的less内容解析读不到依赖的less文件,可能是因为antd的引入不带后缀,所以脚本无法直接读取到对应的less文件导致后面的步骤被中断。但经过尝试,单独引入antd的组件是可以执行的,可能是因为antd在生成的包中有css文件,所以在codesandebox中,只引入antd的组件,不会触发less-transpiler.worker.js的执行,也就可以正常渲染页面。
是否可以在formily生成的包过程中也直接将less输出对应的css文件,或者在less中引入的时候引入的事css文件,而不是antd中的less文件。
Beta Was this translation helpful? Give feedback.
All reactions