使用lit-html的classMap与lit-element冲突,出现unsafe-svg导出错误求解决
修复lit-element与lit-html版本冲突导致的
./directives/unsafe-svg导出错误 具体修复方法
1. 强制统一lit-html版本
lit-element 2.4.0对应的依赖lit-html版本是1.3.0,必须让项目所有依赖都对齐这个版本:
- 在
package.json中添加resolutions字段:"resolutions": { "lit-html": "1.3.0" } - 使用npm的话,先安装
npm-force-resolutions工具:npm install -D npm-force-resolutions,然后在scripts中新增:"preinstall": "npx npm-force-resolutions" - 重新执行
npm install,强制所有依赖使用指定的lit-html版本。
2. 排查第三方Web组件的依赖树
部分第三方组件可能内部依赖了不兼容的lit-html版本,引发冲突:
- 执行
npm ls lit-html查看所有依赖的lit-html版本,定位到引入异常版本的包。 - 尝试升级或降级该第三方组件到与lit-element 2.4.0兼容的版本;若没有兼容版本,可向组件维护者提交issue反馈问题。
3. 清理缓存并重装依赖
依赖缓存可能导致版本不生效,直接清理后重新安装:
- 删除
node_modules文件夹:rm -rf node_modules(Windows系统用rd /s /q node_modules) - 删除
package-lock.json文件:rm package-lock.json(Windows系统用del package-lock.json) - 重新执行
npm install。
4. 确认classMap的正确引入方式
避免因错误引入路径触发额外的依赖解析问题:
- lit-html 1.3.0中classMap的正确引入路径为:
import { classMap } from 'lit-html/directives/class-map.js';
内容的提问来源于stack exchange,提问作者Ricardo de Vries
相关产品推荐
相关产品推荐

