使用NodeJs开发电商应用出现axios is not defined报错该如何解决?
排查解决步骤
- 验证axios依赖安装正确性
执行npm ls axios查看当前项目的axios安装情况,如果返回空或者未安装的提示,执行npm install axios --save重新安装到项目生产依赖,不要使用全局安装的axios,Node.js默认不会加载全局依赖到项目中。 - 核对模块规范与导入语法是否匹配
打开项目根目录的package.json文件,如果你配置了"type": "module",说明项目启用了ES模块规范,不能使用CommonJS的require()语法导入,需要把导入语句替换为:
这是该类报错最常见的诱因,ES模块环境下import axios from 'axios'require('axios')不会正常挂载axios实例,就会触发未定义报错。 - 检查导入语句的作用域
确认axios的导入语句写在main.js文件的最顶部,没有被函数、条件判断等代码块包裹,确保导入的axios变量是全局可用的。 - 清除缓存重装依赖
删除项目根目录的node_modules文件夹、package-lock.json(yarn用户删除yarn.lock)文件后,重新执行npm install安装所有依赖,再启动项目验证,避免缓存导致的代码不生效问题。 - 极简用例验证
项目根目录新建test.js,仅写入以下内容:
执行const axios = require('axios') console.log(axios)node test.js,如果正常输出axios对象说明依赖本身没问题,问题出在main.js其他代码或者项目启动配置上;如果依旧报错,检查你的Node.js版本是否符合axios的最低要求(axios v1.x要求Node.js版本≥12)。
内容的提问来源于stack exchange,提问作者madhu
相关产品推荐
相关产品推荐

