我对反应原生还很陌生。我的所有项目早上都运行良好,但不知何故它们停止了工作。当我运行react-native start 和react-native run-android 时,该应用程序会安装在设备上,但随后会出现此错误,而以前没有发生过。
Loading dependency graph, done.
DELTA [android, dev] ./index.js ░░░░░░░░░░░░░░░░ 0.0% (0/1)/home/yehyaumar/Documents/dumm/busybee/node_modules/graceful-fs/polyfills.js:285
if (cb) cb.apply(this, arguments)
^
TypeError: cb.apply is not a function
at /home/yehyaumar/Documents/dumm/busybee/node_modules/graceful-fs/polyfills.js:285:20
at FSReqCallback.oncomplete (fs.js:169:5)
我什至从头开始克隆了存储库,但错误仍然存在。请帮忙。 RN 版本:0.59.2
我的一个项目的 package.json 文件,
{
"name": "projectalpha",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest",
"lint": "eslint ."
},
"dependencies": {
"@react-native-community/async-storage": "^1.11.0",
"axios": "^0.18.0",
"react": "16.8.3",
"react-native": "0.59.2",
"react-native-awesome-alerts": "^1.2.0",
"react-native-circle-checkbox": "^0.1.6",
"react-native-circular-progress": "^1.1.0",
"react-native-gesture-handler": "^1.1.0",
"react-native-google-places-autocomplete": "^1.3.9",
"react-native-image-picker": "^0.28.1",
"react-native-maps": "react-native-community/react-native-maps#master",
"react-native-maps-directions": "^1.6.0",
"react-native-onesignal": "^3.2.12",
"react-native-reanimated": "^1.0.0-alpha.12",
"react-native-svg": "^9.4.0",
"react-native-svg-charts": "^5.2.0",
"react-native-swiper": "^1.5.14",
"react-native-tab-view": "^2.0.3",
"react-native-vector-icons": "^6.4.2",
"react-navigation": "^3.6.0",
"unstated": "^2.1.1"
},
"devDependencies": {
"@babel/core": "^7.4.0",
"@babel/runtime": "^7.4.2",
"@react-native-community/eslint-config": "^0.0.3",
"babel-jest": "^24.5.0",
"eslint": "^5.15.3",
"jest": "^24.5.0",
"metro-react-native-babel-preset": "^0.53.1",
"react-test-renderer": "16.8.3"
},
"jest": {
"preset": "react-native"
},
"rnpm": {
"assets": [
"./assets/fonts/"
]
}
}
Ciao,这个问题与
graceful-fs
包有关。请重新安装graceful-fs
:
npm install graceful-fs --save-dev
问题应该得到解决。
对我来说,
npm cache clean —force
不起作用,并且graceful-fs在我的项目中不是直接依赖项。
OS: Ubuntu
Node: 14.6.0
Npm: 6.14.7
我仍然不确定为什么会出现此错误,但它有效。我在 Flavio Copes 的帖子中找到了这个解决方案。
打开文件
/node_modules/graceful-fs/polyfills.js
,错误来自哪里。
这是给出问题的函数:
function statFix (orig) {
if (!orig) return orig
// Older versions of Node erroneously returned signed integers for
// uid + gid.
return function (target, cb) {
return orig.call(fs, target, function (er, stats) {
if (!stats) return cb.apply(this, arguments)
if (stats.uid < 0) stats.uid += 0x100000000
if (stats.gid < 0) stats.gid += 0x100000000
if (cb) cb.apply(this, arguments)
})
}
}
注释掉这些行(第 62-64 行):
// fs.stat = statFix(fs.stat)
// fs.fstat = statFix(fs.fstat)
// fs.lstat = statFix(fs.lstat)
转到 C:\Users(您的用户名)\AppData\Roaming 删除 npm 和 npm-cache
如果报错再尝试运行,再次卸载并彻底删除Nodejs,检查上面这两个文件是否仍然不存在,然后重新下载Nodejs。
在我的一台电脑上,第一种方法没有问题,第二种方法需要完全替换 Nodejs 然后才能工作。
这是解决方案。
选项1: 关注这个目录 C:\Users(您的用户名)\AppData\Roaming 删除npm文件夹,如果有一个mom缓存文件夹。 运行 npm clean cache --force (现在需要用force来清理缓存) 如果不做选项 2,你现在应该就好了。
选项2: 关注这个目录 C:\Users(您的用户名)\AppData\Roaming 删除npm文件夹,如果有一个mom缓存文件夹。 运行 npm clean cache --force (现在需要用force来清理缓存) 确保与 Nodejs 相关的所有内容都已删除并卸载。 重新安装 Nodejs。 你现在应该很好了
我必须使用节点 12.3.1 和 npm 6.9.0 来修复此错误
nvm use 12.3.1
这两个都安装了。
npm install
又开始工作了。