多版本LightningCSS共存引发模块找不到错误,该如何解决?
解决多版本LightningCSS共存时的模块找不到错误
问题背景
当项目同时依赖TailwindCSS v4(底层依赖带自有补丁的lightningcss@1.30.1/1.30.2)和Expo v54(依赖固定版本lightningcss@1.27.0)时,会触发以下错误:
Error: Cannot find module '../lightningcss.win32-x64-msvc.node'
已排除以下常见问题:
- Microsoft Visual C++ Redistributable已更新至最新版本
.npmrc的OS参数配置验证无误
可行解决方案
1. 强制统一LightningCSS版本(优先推荐)
利用包管理器的版本覆盖功能,强制所有依赖使用同一个兼容的LightningCSS版本(优先选择TailwindCSS要求的1.30.x版本,需提前验证是否兼容Expo):
npm 用户
在package.json中添加overrides字段:
"overrides": { "lightningcss": "^1.30.2" }
执行npm install重新安装依赖,所有包会统一使用指定版本的LightningCSS,彻底避免版本冲突。
pnpm 用户
在package.json中添加pnpm.overrides字段:
"pnpm": { "overrides": { "@expo/metro-config>lightningcss": "^1.30.2" } }
执行pnpm install完成依赖更新。
yarn 用户
在package.json中添加resolutions字段:
"resolutions": { "lightningcss": "^1.30.2" }
执行yarn install重新安装依赖。
2. 修复二进制包完整性
若版本覆盖方案不可行,可尝试重新下载完整的二进制包:
- 删除
node_modules目录下所有lightningcss相关文件夹 - 清理包管理器缓存:
# npm npm cache clean --force # pnpm pnpm store prune # yarn yarn cache clean - 重新执行安装命令,确保两个版本的LightningCSS都正确下载对应平台的预编译二进制文件。
3. 临时兼容方案
若强制统一版本后Expo出现兼容性问题,可暂时降级TailwindCSS至v3版本,等待Expo官方更新依赖以兼容更高版本的LightningCSS。
内容的提问来源于stack exchange,提问作者rozsazoltan
相关产品推荐
相关产品推荐

