升级Webpack至5.99.5后加载JSON文件出现报错
升级Webpack至5.99.5后加载JSON文件出现报错
我来帮你捋捋这个问题~ 你把Webpack从5.98.0升级到5.99.5后,这段代码const animations = require("./filename.json?json");突然报错,错误提示说Json Modules Plugin的generator配置里有不被识别的filename属性,不符合API schema的要求。
出现这个问题的核心原因是:Webpack 5.99.x版本对Json Modules Plugin的配置做了更严格的校验,之前允许的filename配置项现在已经被移除或不再支持了——不管是你自己配置的,还是Webpack内部默认带的这个属性,都会触发校验错误。
给你几个可行的解决思路:
- 先检查你的Webpack配置文件,看看有没有在处理JSON模块的规则里(比如
module.rules中针对.json的配置),或者plugins里的JsonModulesPlugin配置中,给generator设置了filename属性。如果有的话,直接删掉这个属性就好,最新版本已经不需要这个配置了。 - 你代码里加的
?json查询参数其实有点多余,Webpack 5里.json文件默认就会被当作JSON模块加载。你可以试试直接改成const animations = require("./filename.json");,或者用ES模块写法import animations from "./filename.json";,大概率就能解决报错。 - 如果你确实需要自定义JSON模块的输出行为,得参考Webpack最新的Json Modules文档,用现在支持的配置项替代原来的
filename,比如可能需要通过输出相关的全局配置来控制,而不是在generator里单独设置filename。
备注:内容来源于stack exchange,提问作者VarunJi
相关产品推荐
相关产品推荐

