未知的浏览器 kaios

共5个回答,已解决, 标签: javascript reactjs react-scripts

我已经更新了我的项目, 以使用节点和纱线的最后版本, 在此升级后, 现在我的反应项目不想与 "浏览器列表" 一起工作。

我运行 "纱线启动", 并得到此错误:

./src/assets/css/material-dashboard-react.css?v=1.2.0 (./node_modules/css-loader??ref--6-oneOf-3-1!./node_modules/postcss-loader/src??postcss!./src/assets/css/material-dashboard-react.css?v=1.2.0)
BrowserslistError: Unknown browser kaios
    at Array.reduce ()
    at Array.some ()
    at Array.filter ()
    at new Promise ()

我有以下版本:

  • 节点 v10.15。3
  • npm 6.9。0
  • 纱线 v1.15。2

还有我的包。

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@material-ui/core": "3.9.3",
    "@material-ui/icons": "3.0.2",
    "axios": "0.18.0",
    "classnames": "2.2.6",
    "html2canvas": "^1.0.0-alpha.12",
    "immutable": "3.8.2",
    "jspdf": "^1.4.1",
    "jspdf-autotable": "^2.3.5",
    "moment": "2.22.2",
    "npm-run-all": "4.1.5",
    "perfect-scrollbar": "1.4.0",
    "plotly.js": "1.47.1",
    "react": "^16.6.3",
    "react-currency-format": "1.0.0",
    "react-dates": "18.2.2",
    "react-dom": "^16.6.3",
    "react-excel-workbook": "0.0.4",
    "react-google-maps": "9.4.5",
    "react-plotly.js": "2.3.0",
    "react-redux": "6.0.0",
    "react-router": "4.3.1",
    "react-router-dom": "4.3.1",
    "react-scripts": "2.1.8",
    "react-select": "2.1.2",
    "react-swipeable-views": "0.13.1",
    "redux": "4.0.1",
    "redux-immutable": "4.0.0",
    "redux-persist": "5.10.0",
    "redux-thunk": "2.3.0",
    "weather-icons": "^1.3.2"
  },
  "scripts": {
    "start": "react-scripts --max-old-space-size=8192 start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  },
  "browserslist": [
    ">1%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ]
}

对我来说, 这个问题与 cs 装载机有关, 我尝试解决这个问题, 并在包中添加css-loader@2.1.1 。我尝试了其他的解决方案, 但没有人工作。

第1个答案(采用)

TL; DRrm yarn.lock; yarn

长篇散文:

两者 browserslistpostcss-preset-env 可能是第 2 级 (深层) 依赖项。这是很常见的 create-react-app 。但是, yarn upgrade 不升级锁定的子依赖项, 这样做的命令是违反纱线哲学的。

可以说, 其中一个库应该限制所需的依赖版本, 并将其留给纱线来解决好的版本。如果是这样的话, 那 yarn 就是正确的。

可以通过对项目建立一些 {browserslist, caniuse-lite, postcss-preset-env} 直接的 [dev] 依赖关系来解决此问题。

或者, 更短 rm yarn.lock; yarn , ✨

引用:

第2个答案

我看了一下代码, 这是因为 caniuse 更新的是哪个支持 KAI os 的查询 (我猜在印度的一些移动操作系统?)因此, 如果您添加 postcss-preset-env 今天 caniuse-lite , 并有一些依赖之前安装的软件包, 您可能会遇到错误

tl; dr 删除节点 _ 模块并锁定, 然后再次安装所有依赖项

第3个答案

我也面临着同样的问题, 通过修复 caniuse-lite 版本与以前的 package.json 最后一个版本, 我能够解决这个问题。

追加到package.json

  "resolutions": {
    "caniuse-lite": "1.0.30000957"
  },

运行$ yarn

并检查 yarn.lock 是否正在使用预期的版本:

...
caniuse-lite@1.0.30000957, caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000955, caniuse-lite@^1.0.30000957:
  version "1.0.30000957"
  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000957.tgz#fb1026bf184d7d62c685205358c3b24b9e29f7b3"
  integrity sha512-8wxNrjAzyiHcLXN/iunskqQnJquQQ6VX8JHfW5kLgAPRSiSuKZiNfmIkP5j7jgyXqAQBSoXyJxfnbCFS0ThSiQ==
...
第4个答案

我今天也犯了这个错误。看来这个问题与 postcss-preset-env 。删除它的后 css 插件列表解决了我的问题。

我决定和我呆在一起 autoprofixer postcss-custom-properties , 而不是 postcss-preset-env

第5个答案

对于升级到创建反应应用程序 3 的用户, 此错误是由不兼容 browserslist@<> 和一起运行引起的 caniuselite@>1.0.30000957

运行 npm ls browserslist 以查看旧版本的安装位置, browserslist 并升级那些依赖项的包browserslist

纱线用户可以通过遵循所提供的一些现有答案来解决这个问题。

我是 NPM 用户, 通过作为 browserslist@^4.5.5 根依赖项进行安装来解决这个问题, 因此可传递 browserslist 的依赖关系被解降至根依赖关系。

相关问题

如何从异步调用返回响应? 循环中的 JavaScript 闭包--简单的实际示例 如何从异步调用返回响应? 如何使用使用效果挂钩注册事件? 未知的浏览器 kaios 在 Set间隙中使用 "反应状态" 挂钩时状态不更新