Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I am using axios for building a simple weather app with React.js. I just completed the code but there is a problem. When I launch that app, it's not working at all and I see a reference error that says
axios is not defined
.
Here is my webpack.config.js file:
module.exports = {
entry: './public/app/app.jsx',
output: {
path: __dirname,
filename: './public/js/bundle.js'
externals: ['axios'],
resolve: {
root: __dirname,
alias: {
OpenWeatherMap: 'public/components/OpenWeatherMap.jsx',
Main: 'public/components/Main.jsx',
Nav: 'public/components/Nav.jsx',
Weather: 'public/components/Weather.jsx',
WeatherForm: 'public/components/WeatherForm.jsx',
WeatherMessage: 'public/components/WeatherMessage.jsx',
About: 'public/components/About.jsx'
extensions: ['', '.js', '.jsx']
module: {
loaders: [{
loader: 'babel-loader',
query: {
presets: ['react','es2015', 'stage-0']
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/
loader: 'json-loader',
test: /\.json?$/
and package.json file:
"name": "weather",
"version": "1.0.0",
"description": "Simple Weather App",
"main": "ext.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"author": "Milad Fattahi",
"license": "ISC",
"dependencies": {
"axios": "^0.16.1",
"express": "^4.15.3",
"json": "^9.0.6",
"json-loader": "^0.5.4",
"react": "^15.5.4",
"react-dom": "^15.5.4",
"react-router": "^4.1.1",
"react-router-dom": "^4.1.1"
"devDependencies": {
"babel-core": "^6.5.1",
"babel-loader": "^6.2.2",
"babel-preset-es2015": "^6.5.0",
"babel-preset-react": "^6.5.0",
"babel-preset-stage-0": "^6.24.1",
"webpack": "^1.12.13"
–
I know this might seem obvious but make sure there is a reference at the top of your file to the correct axios or install it
https://www.npmjs.com/package/axios
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
–
–
npm i axios --global
// --global flags will save you the stress of insstalling axios again.
That solved my error.
–
–
https://unpkg.com/axios/dist/axios.min.js <<linked this in my html (script src="")
Look on npm site if it changes https://www.npmjs.com/package/axios
I then removed the following line from my js...
const axios = require('axios')
No more issues for me!
The accepted answers include three main remedies, but there is a fourth potential remedy. I will repeat the already quoted ones for completion
Remedy 1
In the root project folder, install Axios:
npm i axios --global
Remedy 2
In the .js
file that uses axios, import axios:
import axios from 'axios';
Remedy 3
Remove externals: ['axios']
, from your webpack.config
Remedy 4
You are not calling axios to begin with through a spelling/case error. You may be calling something like await Axios
as opposed to the correct call await axios
.
Some tutorials like this one make the case typo and this causes great pain to the unsuspecting newcomer
–
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.