反应 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 不起作用

反应虚拟化自动大小调整器不起作用

phonegap 创建不起作用

尝试使用有效令牌直接访问页面时,JWT 身份验证不起作用;将在登录时开始工作。反应/节点/快递

落在pdf(EasyWebView)顶部的部分窗口对话框(showDatePicker)不起作用,没有反应

为啥 npm install react-router-dom 不起作用?