Umi 项目热更新报错如下:
Uncaught TypeError: punycode.toASCII is not a function at Url.parse (hotModuleReplacement.js:532) at Object.urlParse [as parse] (hotModuleReplacement.js:417) at module2.exports (hotModuleReplacement.js:1429) at getReloadUrl (hotModuleReplacement.js:1586) at hotModuleReplacement.js:1601 at NodeList.forEach (<anonymous>) at reloadStyle (hotModuleReplacement.js:1597) at update (hotModuleReplacement.js:1638) at functionCall2 (hotModuleReplacement.js:1510)
已知是 Umi 的一个 BUG,已与 2021年7月5日修复:fix: punycode.toASCII is not a function (#6871) 代码修改记录
下面看一下原因:
查看 hotModuleReplacement.js
文件源码 (文件位置: /node_modules/@umijs/bundler-webpack/bundled/css/hotModuleReplacement.js
)
这个文件中定义了两次来自两个不同版本 punycode 的代码:
代码第 219- 221 行:
代码第 360 行:
出错的时候是引用了 "version": "1.3.2" ,引入的版本是不对的,并且是以 amd 的形式引入,其结果就是 punycode = {}
,导致后面没有方法。
解决方法:
更新 Umi 版本。
未经允许不得转载:w3h5 » UmiJS less文件热更新报错:punycode.toASCII is not a function
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/228535.html