无法从 node_modules\uuidv4\build\lib\uuidv4.js 解析模块 util:在项目中找不到 util

Unable to resolve module util from node_modules\uuidv4\build\lib\uuidv4.js: util could not be found within the project

我已经在 package.json 中更新了我的模块,但我现在收到错误消息“无法从 node_modules\uuidv4\build\lib\uuidv4.js 解析模块实用程序:无法在项目中找到实用程序。 “

在下面的步骤中,我完成了第 2 步。我没有为 #1 使用 watchman,我为 #3 使用 npm 而不是 yarn,而且我不知道 #4 指的是什么路径。这是我的完整输出。

PS C:\Dev\myProj> react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

(node:16148) 警告:访问循环依赖中不存在的 属性 'padLevels' 模块导出 (使用 node --trace-warnings ... 显示创建警告的位置) 欢迎使用 React Native! 一次学习,随处写作

错误无法从 node_modules\uuidv4\build\lib\uuidv4.js 解析模块 util:在项目中找不到实用程序。

如果您确定该模块存在,请尝试以下步骤:

  1. 清除守望者手表:watchman watch-del-all
  2. 删除node_modules:rm -rf node_modules和运行纱线安装
  3. 重置 Metro 的缓存:yarn start --reset-cache
  4. 删除缓存:rm -rf /tmp/metro-*。 运行 带有 --verbose 标志的 CLI 以获取更多详细信息。 错误:无法从 node_modules\uuidv4\build\lib\uuidv4.js 解析模块 util:在项目中找不到实用程序。

如果您确定该模块存在,请尝试以下步骤:

  1. 清除守望者手表:watchman watch-del-all
  2. 删除node_modules:rm -rf node_modules和运行纱线安装
  3. 重置 Metro 的缓存:yarn start --reset-cache
  4. 删除缓存:rm -rf /tmp/metro-* 在 ModuleResolver.resolveDependency(C:\Dev\myProj\node_modules\metro\src\node-haste\DependencyGraph\ModuleResolution.js:186:15) 在 ResolutionRequest.resolveDependency(C:\Dev\myProj\node_modules\metro\src\node-haste\DependencyGraph\ResolutionRequest.js:52:18) 在 DependencyGraph.resolveDependency (C:\Dev\myProj\node_modules\metro\src\node-haste\DependencyGraph.js:287:16) 在 Object.resolve(C:\Dev\myProj\node_modules\metro\src\lib\transformHelpers.js:267:42) 在 C:\Dev\myProj\node_modules\metro\src\DeltaBundler\traverseDependencies.js:434:31 在 Array.map () 在 resolveDependencies (C:\Dev\myProj\node_modules\metro\src\DeltaBundler\traverseDependencies.js:431:18) 在 C:\Dev\myProj\node_modules\metro\src\DeltaBundler\traverseDependencies.js:275:33 在 Generator.next () 在 asyncGeneratorStep (C:\Dev\myProj\node_modules\metro\src\DeltaBundler\traverseDependencies.js:87:24)

这是我的 package.json 文件

{
  "name": "myproj",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "react-native start",
    "prettier": "prettier --write '*.js' 'src/**/*.js'",
    "test": "jest",
    "lint": "eslint .",
    "android": " cd android && ./gradlew clean && cd .. && react-native run-android",
    "ios": "react-native run-ios"
  },
  "dependencies": {
    "@react-native-community/async-storage": "^1.11.0",
    "@react-native-community/cameraroll": "^4.0.0",
    "@react-native-community/geolocation": "^2.0.2",
    "@react-native-community/masked-view": "^0.1.10",
    "@react-native-firebase/app": "^8.3.1",
    "@react-native-firebase/auth": "^8.3.3",
    "@react-native-firebase/messaging": "^7.7.1",
    "@skele/components": "^1.0.0-alpha.40",
    "axios": "^0.19.2",
    "base-64": "^0.1.0",
    "crypto-js": "^4.0.0",
    "expo-av": "~8.4.0",
    "expo-blur": "^8.1.2",
    "expo-camera": "^8.3.1",
    "expo-constants": "~9.1.1",
    "expo-facebook": "~8.2.1",
    "expo-file-system": "^9.1.0",
    "expo-firebase-recaptcha": "^1.1.3",
    "expo-image-picker": "~8.4.0",
    "expo-localization": "~8.2.1",
    "expo-location": "~8.3.0",
    "expo-permissions": "^9.1.0",
    "firebase": "7.18.0",
    "formik": "^2.1.5",
    "i18n-js": "^3.7.1",
    "invert-color": "^2.0.0",
    "jest-haste-map": "^26.3.0",
    "jest-serializer": "^26.3.0",
    "jest-worker": "^26.3.0",
    "lodash": "^4.17.20",
    "lodash.isequal": "^4.5.0",
    "lodash.memoize": "^4.1.2",
    "mobx": "^5.15.6",
    "mobx-react": "^6.2.5",
    "moment": "^2.27.0",
    "oauth-1.0a": "^2.2.6",
    "react": "16.13.1",
    "react-native": "0.63.2",
    "react-native-actionsheet": "^2.4.2",
    "react-native-animatable": "^1.3.3",
    "react-native-app-intro-slider": "^4.0.4",
    "react-native-appearance": "~0.3.4",
    "react-native-autogrow-textinput": "^5.4.0",
    "react-native-button": "^3.0.1",
    "react-native-confirmation-code-field": "^6.5.0",
    "react-native-dialog-input": "^1.0.8",
    "react-native-fast-image": "^8.3.2",
    "react-native-fbsdk": "2.0.0",
    "react-native-geocoding": "^0.4.0",
    "react-native-gesture-handler": "^1.7.0",
    "react-native-get-random-values": "^1.4.0",
    "react-native-google-places-autocomplete": "^1.8.0",
    "react-native-image-crop-picker": "^0.32.2",
    "react-native-image-filter-kit": "^0.7.3",
    "react-native-image-picker": "^2.3.3",
    "react-native-image-progress": "^1.1.1",
    "react-native-image-view": "^2.1.9",
    "react-native-indicators": "^0.17.0",
    "react-native-iphone-x-helper": "^1.2.1",
    "react-native-keyboard-aware-scroll-view": "^0.9.2",
    "react-native-keyboard-aware-view": "0.0.14",
    "react-native-keyboard-input": "^6.0.2",
    "react-native-keyboard-tracking-view": "^5.7.0",
    "react-native-localize": "^1.4.1",
    "react-native-maps": "0.27.1",
    "react-native-modal": "^11.5.6",
    "react-native-modal-patch": "git+https://github.com/HarvestProfit/react-native-modal-patch.git",
    "react-native-modalbox": "^2.0.0",
    "react-native-phone-input": "^0.2.4",
    "react-native-popup-menu": "^0.15.9",
    "react-native-progress": "^4.1.2",
    "react-native-reanimated": "^1.13.0",
    "react-native-safe-area-context": "^3.1.4",
    "react-native-screens": "^2.10.1",
    "react-native-search-box": "0.0.19",
    "react-native-slider": "^0.11.0",
    "react-native-splash-screen": "^3.2.0",
    "react-native-swiper": "^1.6.0-nightly.5",
    "react-native-unimodules": "^0.10.1",
    "react-native-vector-icons": "7.0.0",
    "react-native-video": "^5.0.2",
    "react-native-view-more-text": "^2.1.0",
    "react-native-webview": "^10.7.0",
    "react-navigation": "^4.4.0",
    "react-navigation-drawer": "^2.5.0",
    "react-navigation-redux-helpers": "^4.0.1",
    "react-navigation-stack": "^2.8.2",
    "react-navigation-tabs": "^2.9.0",
    "react-redux": "^7.2.1",
    "redux": "^4.0.5",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.3.0",
    "remote-redux-devtools": "^0.5.16",
    "uuidv4": "^6.2.2"
  },
  "devDependencies": {
    "@babel/core": "^7.11.1",
    "@babel/plugin-proposal-decorators": "^7.10.5",
    "@babel/runtime": "^7.11.2",
    "@react-native-community/eslint-config": "^2.0.0",
    "babel-jest": "^26.3.0",
    "babel-plugin-transform-remove-console": "^6.9.4",
    "eslint": "7.7.0",
    "jest": "^26.4.0",
    "metro-react-native-babel-preset": "^0.62.0",
    "prettier": "2.0.5",
    "react-test-renderer": "16.13.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

从项目中删除 node-modules 文件夹,然后 运行 npm-install 再次生成。这对我有用。

我不得不回滚:

"uuidv4": "^5.0.1"

搜索您在项目中导入“uuidv4”的位置并将其删除。

None 此处提供的答案对我有用。我试过了

  • 恢复到“uuidv4”:“^5.0.1”
  • 恢复到“uuidv4”:“^3.0.1”
  • 删除 node_modules 文件夹,然后 运行 npm i

为我解决问题的是改用这一代 UUID https://www.npmjs.com/package/react-native-uuid

然后从 uuid 库中导入 uuidv4

const { v4: uuidv4 } = require('uuid');

内部函数:

setTodo(prevTodo => {
`return [...prevTodo,{id:uuidv4(), name: name, complete:false}]
})