在尝试使用@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.0Package.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"
]
}
}发布于 2021-03-24 20:24:57
显然,运行最后一个版本的react和react-dom,即atm 17.0.2,并不是最好的主意。我回到了16.14.0,一切都很好。
我在这里发现(How to fix Npm missing peer dependency) ^有点误导。
ie:
需要的对等方为react@^15.0.0 \ ^16.0.0
意味着它需要>15.0.0但是< 17.0.
https://stackoverflow.com/questions/66787912
复制相似问题