反应 npm 开始不起作用:'没有可用的 chokidar 版本'
Posted
技术标签:
【中文标题】反应 npm 开始不起作用:\'没有可用的 chokidar 版本\'【英文标题】:React npm start not working : 'No version of chokidar available'反应 npm 开始不起作用:'没有可用的 chokidar 版本' 【发布时间】:2021-06-18 09:59:33 【问题描述】:我从 Github 克隆了我已经在 Github Pages 上工作的 React-Typescript 应用程序,并想进行一些更改。我运行 npm install 并安装了所有依赖项,但是当我运行 npm start 时,出现此错误;
我不知道 chokidar 是什么,我看了一点,我认为它与我的项目无关。我仍然尝试 npm install chokidar 并且我得到了另一个这样的错误;
也试过npm audit fix
。修复了一些东西,但没有任何改变。
所以我无法打开开发服务器。另外,这是 package.json 文件;
// package.json
"name": "panflix",
"homepage": "https://absolutezero13.github.io/meerkast/",
"version": "0.1.0",
"private": true,
"dependencies":
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"@types/enzyme": "^3.10.8",
"@types/jest": "^26.0.15",
"@types/node": "^12.0.0",
"@types/react": "^17.0.0",
"@types/react-dom": "^17.0.0",
"@types/redux-devtools": "^3.0.47",
"axios": "^0.21.1",
"enzyme": "^3.11.0",
"firebase": "^8.2.7",
"gh-pages": "^3.1.0",
"history": "^4.10.1",
"react": "^17.0.1",
"react-bootstrap": "^1.5.0",
"react-dom": "^17.0.1",
"react-redux": "^7.2.2",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.2",
"redux": "^4.0.5",
"redux-devtools-extension": "^2.13.8",
"redux-thunk": "^2.3.0",
"typescript": "^4.1.2",
"web-vitals": "^1.0.1"
,
"scripts":
"predeploy": "npm run build",
"deploy": "gh-pages -d build",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
,
"eslintConfig":
"extends": [
"react-app",
"react-app/jest"
]
,
"browserslist":
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
,
"devDependencies":
"@types/react-redux": "^7.1.16",
"@types/react-router-dom": "^5.1.7"
我尝试了npm install -g chokidar
,它已安装。但是我遇到了与之前相同的错误“没有可用的 chokidar 版本。”
其他 React 项目运行良好。
【问题讨论】:
也许这可以帮助***.com/a/56105431/9095807 【参考方案1】:我有同样的问题。对我有用的是强制更新本地 npm 包:
npm update --force
之前
$ npm list chokidar
pwa-react-showcase@0.1.0
└─┬ react-scripts@4.0.3
└─┬ webpack-dev-server@3.11.1
└── chokidar@2.1.8
之后
$ npm list chokidar
pwa-react-showcase@0.1.0
└─┬ react-scripts@4.0.3
├─┬ webpack-dev-server@3.11.1
│ └── chokidar@2.1.8
└─┬ webpack@4.44.2
└─┬ watchpack@1.7.5
├── chokidar@3.5.1
└─┬ watchpack-chokidar2@2.0.1
└── chokidar@2.1.8
更新
我们发现 NPM 7 是问题所在。无需任何更改即可降级到 NPM 6.14.12。
【讨论】:
降级有效,但没有必要。你可以只用 npm update chokidar。请看下面我的回答。如果您没有指定依赖项的确切版本,那么强制更新可能不是更新所有依赖项的好主意。【参考方案2】:刚刚通过运行解决了我的问题
npm update chokidar
这将使用最新的 chokidar 信息更新 package-lock.json。现在运行 react,npm 7.15 和 node 14.16 没有任何问题
当我从 NPM 6 更新到版本 7 时出现了原始问题。github 中还有一个 bug 票:https://github.com/facebook/create-react-app/issues/10811
【讨论】:
到目前为止,这个解决方案对我来说是最简单的,谢谢!在刚刚更新到 npm 7 的 CRA 应用上解决完全相同的问题。 这个解决方案解决了我所有的问题,谢谢!【参考方案3】:从npm@6.x
升级到npm@7.x
后,我也遇到了同样的问题。我通过简单地将chokidar
安装为DevDependency
解决了我的问题。一切都按预期工作(开发、生产构建和测试)
为了获得更多保证:
npm i -g npm
npm cache verify
npm i -D chokidar
npm i
【讨论】:
用 npm update chokidar 更新 chokidar 似乎就足够了。我至少需要一个命令 =) 这很好。它适用于纯克隆吗?例如rm -rf node_modules; npm i ; npm start
?
如果您没有更新您的包锁定文件,可能不会。然后只需rm -rf node_modules; npm i ; npm update chokidar; npm start
啊哈。好的。我只是要求确保其他队友能够从一个简单的npm i
中受益
如果您首先更新包锁定文件并将其推送到每个人的存储库,您的队友只需 npm i 即可。【参考方案4】:
Chockidar 是 watchpak 中的一个依赖项,它负责在开发环境中保存时进行热重载。
Chuckidar 2 在节点 v14+ 上存在问题。
对我来说,npm update
确实更新了 watchpack 以使用 chockidar 3。
【讨论】:
【参考方案5】:您需要更新 chokidar。所以只需要点击命令
npm update chokidar
要么
npm update chokidar@2
如果你得到像这样的错误
invalid json response body at https://registry.npmjs.org/chokidar reason: Unexpected end of JSON input
那么主要原因可能是缓存,所以你必须清理缓存。为此,点击命令
npm cache clean --force
在此之后,如果您再次遇到类似 as 的错误
`ENOENT: no such file or directory, scandir '/node_modules/node-sass/vendor'`
然后你需要重建 node sass,通过点击命令
npm rebuild node-sass
就是这样,它是如何为我工作的。
【讨论】:
【参考方案6】:因为chokidar的版本需要更新到3
方法一:
npm i chokidar@latest --force
这对我有用。 npm 本身说:npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+.升级到 chokidar 3,依赖减少 15 倍。
方法二(推荐):
npm 审计修复
如果您通过公司网络上的代理进行连接,这可能不适合您,您可能会得到如下信息:
npm 错误!审核端点返回错误
方法三:
将 npm 版本降级到 6方法四:
npm 更新 --force
不建议用于大型项目。
【讨论】:
【参考方案7】:更新 Chokidar 依赖项为我解决了这个问题。
npm update chokidar
【讨论】:
【参考方案8】:我今天遇到了这个问题 我到处搜索,然后用这个解决我的问题:
$ npm update --force
【讨论】:
以上是关于反应 npm 开始不起作用:'没有可用的 chokidar 版本'的主要内容,如果未能解决你的问题,请参考以下文章
与内部的另一个异步 api 调用反应 Native GeoLocation 不起作用
尝试使用有效令牌直接访问页面时,JWT 身份验证不起作用;将在登录时开始工作。反应/节点/快递