Reputation: 901
I get this error after installing and importing axios in my react project, any help?:
Compiled with problems:
ERROR in ./node_modules/axios/lib/adapters/http.js 11:11-26
Module not found: Error: Can't resolve 'http' in 'H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules\axios\lib\adapters' Did you mean './http'? Requests that should resolve in the current directory need to start with './'. Requests that start with a name are treated as module requests and resolve within module directories (node_modules, H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules). If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "http": require.resolve("stream-http") }' - install 'stream-http' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "http": false }
ERROR in ./node_modules/axios/lib/adapters/http.js 13:12-28
Module not found: Error: Can't resolve 'https' in 'H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules\axios\lib\adapters'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "https": require.resolve("https-browserify") }' - install 'https-browserify' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "https": false }
ERROR in ./node_modules/axios/lib/adapters/http.js 19:10-24
Module not found: Error: Can't resolve 'url' in 'H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules\axios\lib\adapters'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "url": require.resolve("url/") }' - install 'url' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "url": false }
ERROR in ./node_modules/axios/lib/adapters/http.js 21:11-26
Module not found: Error: Can't resolve 'zlib' in 'H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules\axios\lib\adapters'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "zlib": require.resolve("browserify-zlib") }' - install 'browserify-zlib' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "zlib": false }
ERROR in ./node_modules/follow-redirects/index.js 1:10-24
Module not found: Error: Can't resolve 'url' in 'H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules\follow-redirects'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "url": require.resolve("url/") }' - install 'url' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "url": false }
ERROR in ./node_modules/follow-redirects/index.js 5:11-26
Module not found: Error: Can't resolve 'http' in 'H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules\follow-redirects' Did you mean './http'? Requests that should resolve in the current directory need to start with './'. Requests that start with a name are treated as module requests and resolve within module directories (node_modules, H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules). If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "http": require.resolve("stream-http") }' - install 'stream-http' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "http": false }
ERROR in ./node_modules/follow-redirects/index.js 7:12-28
Module not found: Error: Can't resolve 'https' in 'H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules\follow-redirects' Did you mean './https'? Requests that should resolve in the current directory need to start with './'. Requests that start with a name are treated as module requests and resolve within module directories (node_modules, H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules). If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "https": require.resolve("https-browserify") }' - install 'https-browserify' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "https": false }
ERROR in ./node_modules/follow-redirects/index.js 9:15-41
Module not found: Error: Can't resolve 'stream' in 'H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules\follow-redirects'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }' - install 'stream-browserify' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "stream": false }
ERROR in ./node_modules/follow-redirects/index.js 11:13-30
Module not found: Error: Can't resolve 'assert' in 'H:\Github\arshwy\reactjs-laravel-simple-dashboard\frontend-react\node_modules\follow-redirects'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "assert": require.resolve("assert/") }' - install 'assert' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "assert": false }
Upvotes: 8
Views: 28485
Reputation: 11
Try delete import {response} from "express"
Maybe you don't want to use response
from express
.
Upvotes: 1
Reputation: 85
I solved this issue by these following steps:
stream-http
using npm i stream-http
npm i
then npm audit fix --force
npm run eject
to eject the project./config/webpack.config.js
fallback
in the resolve
config, and configure it { "http": require.resolve("stream-http") }
Now webpack.config.js
looks like this:
// a lot of consts and imports (requires)
// ...
module.exports = function (webpackEnv) {
// a lot of configs
// ...
resolve: {
// ...
fallback: {
http: require.resolve("stream-http") // that is this
}
}
}
Upvotes: 2
Reputation: 113
version 0.27 [the latest] not works with me so I removed it and installed prev version like this: "axios": "^0.21.1" It works well with me
Upvotes: 1
Reputation: 11
Webpack 5 no longer includes node shims by default, thus we must opt-in to all shims we want. We'll need to add a few dependencies to our project to accomplish this:
yarn add process browserify-zlib stream-browserify util buffer assert
after the installation, modify your webpack.config
file as given below
const webpack = require("webpack");
module.exports = {
/* ... */
resolve: {
fallback: {
http : require.resolve("stream-http"),
https : require.resolve("https-browserify"),
url : require.resolve("url"),
process: require.resolve("process/browser"),
zlib: require.resolve("browserify-zlib"),
stream: require.resolve("stream-browserify"),
util: require.resolve("util"),
buffer: require.resolve("buffer"),
asset: require.resolve("assert"),
}
},
plugins: [
new webpack.ProvidePlugin({
Buffer: ["buffer", "Buffer"],
process: "process/browser",
}),
]
/* ... */
}
Upvotes: 1