如何解决尽管拥有高级版本的 React
在尝试使用 @testing-library-react
进行一些测试时,我尝试 - 不成功地 - 安装 msw
我注意到这些 npm WARN
:
npm WARN airbnb-prop-types@2.16.0 requires a peer of react@^0.14 || ^15.0.0 || ^16.0.0-alpha but none is installed. You must install peer dependencies yourself.
npm WARN enzyme-adapter-react-16@1.15.6 requires a peer of react@^16.0.0-0 but none is installed. You must install peer dependencies yourself.
npm WARN enzyme-adapter-react-16@1.15.6 requires a peer of react-dom@^16.0.0-0 but none is installed. You must install peer dependencies yourself.
npm WARN react-test-renderer@16.14.0 requires a peer of react@^16.14.0 but none is installed. You must install peer dependencies yourself.
npm WARN enzyme-adapter-utils@1.14.0 requires a peer of react@0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0 but none is installed. You must install peer dependencies yourself.
遵循npm ERR!
npm ERR! code ENOENT
npm ERR! syscall rename
npm ERR! path C:\xampp\htdocs\react\React-Laravel\vinos-gdl\node_modules\@open-draft\until
npm ERR! dest C:\xampp\htdocs\react\React-Laravel\vinos-gdl\node_modules\@open-draft\.until.DELETE
npm ERR! errno -4058
npm ERR! enoent ENOENT: no such file or directory,rename 'C:\xampp\htdocs\react\React-Laravel\vinos-gdl\node_modules\@open-draft\until' -> 'C:\xampp\htdocs\react\React-Laravel\vinos-gdl\node_modules\@open-draft\.until.DELETE'
npm ERR! enoent This is related to npm not being able to find a file.
当我当前的 react
和 react-dom
版本是 17.0.2
时,我不明白我需要什么反应同行。所以我不太确定如何修复那些显然不允许我安装相关软件包的 WARN
。
我已经尝试删除 node_modules
、package.json.lock
、运行 npm cache clean
和 npm i
,但运气不佳。
如果我 npm list
我会得到同样的结果:
npm ERR! peer dep missing: react@^16.0.0-0,required by enzyme-adapter-react-16@1.15.6
npm ERR! peer dep missing: react-dom@^16.0.0-0,required by enzyme-adapter-react-16@1.15.6
npm ERR! peer dep missing: react@^16.14.0,required by react-test-renderer@16.14.0
npm ERR! peer dep missing: react@0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0,required by enzyme-adapter-utils@1.14.0
npm ERR! peer dep missing: react@^0.14 || ^15.0.0 || ^16.0.0-alpha,required by airbnb-prop-types@2.16.0
Package.json:
{
"private": true,"scripts": {
"dev": "npm run development","development": "mix","watch": "mix watch","watch-poll": "mix watch -- --watch-options-poll=1000","hot": "mix watch --hot","prod": "npm run production","production": "mix --production","test": "jest --watchAll"
},"devDependencies": {
"@babel/preset-react": "^7.12.13","@testing-library/jest-dom": "5.11.9","@testing-library/react": "^11.2.5","axios": "^0.21.1","bootstrap": "^4.6.0","jquery": "^3.2","laravel-mix": "^6.0.13","lodash": "^4.17.21","popper.js": "^1.16.1","postcss": "^8.2.8","react": "^17.0.2","react-dom": "^17.0.2","resolve-url-loader": "^3.1.2","sass": "^1.32.8","sass-loader": "^8.0.2"
},"dependencies": {
"@babel/plugin-transform-runtime": "^7.13.10","@fortawesome/fontawesome-svg-core": "^1.2.35","@fortawesome/free-brands-svg-icons": "^5.15.3","@fortawesome/free-solid-svg-icons": "^5.15.3","@fortawesome/react-fontawesome": "^0.1.14","downshift": "^6.1.1","enzyme": "^3.11.0","enzyme-adapter-react-16": "^1.15.6","enzyme-to-json": "^3.6.1","jest": "^26.6.3","react-bootstrap": "^1.5.0","react-multi-carousel": "^2.6.2","react-paginate": "^7.1.2","react-router": "^5.2.0","react-router-dom": "^5.2.0","react-select": "^4.3.0","react-test-renderer": "^17.0.2","react-toastify": "^7.0.3"
},"babel": {
"presets": [
"@babel/preset-react","@babel/preset-env"
],"plugins": [
"@babel/plugin-transform-react-jsx","@babel/plugin-transform-runtime"
]
}
}
解决方法
好吧,显然运行最后一个版本的 react
andd react-dom
是 atm 17.0.2
并不是最好的主意。我回滚到 16.14.0
,一切正常。
我在这里 (How to fix Npm missing peer dependency) 发现 ^
有点误导。
即:
需要一个react@^15.0.0的peer || ^16.0.0
意味着它需要 >15.0.0
但 < 17.0.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。