React Native使用uuidv4报错:无法解析util模块
解决React Native中uuidv4包找不到util模块的问题
问题原因
uuidv4包依赖Node.js核心模块util,但React Native的JS运行环境(Hermes/JSC)不包含该模块,因此触发模块解析错误。
解决方案
方案1:改用官方uuid包(推荐)
uuidv4本质是对uuid包的封装,直接使用原生uuid包更适配React Native:
- 卸载uuidv4
npm uninstall uuidv4
- 安装uuid包
npm install uuid
- 在代码中导入并生成v4 UUID
import { v4 as uuidv4 } from 'uuid'; // 生成条目ID const itemId = uuidv4();
方案2:为React Native添加util模块兼容
如果坚持使用uuidv4包,需要安装util的polyfill:
- 安装util包
npm install util
- 修改
metro.config.js,添加对Node核心模块的解析支持:
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); const config = {}; module.exports = mergeConfig(getDefaultConfig(__dirname), { resolver: { extraNodeModules: require('node-libs-react-native'), }, });
- 安装
node-libs-react-native(提供Node核心模块的RN兼容版本)
npm install node-libs-react-native
注意:方案2会增加额外依赖,不如方案1简洁高效。
内容的提问来源于stack exchange,提问作者dev boris
相关产品推荐
相关产品推荐

