Node.js中使用Axios报错:Cannot use import statement outside a module
解决方法
直接引入Axios的CommonJS构建文件
把你的app.js代码改成:const axios = require('axios/dist/node/axios.cjs').default; console.log("Test");Axios 1.x版本的默认入口是ES模块,而你的Node v12.14.0默认使用CommonJS规范,直接require根目录的axios会加载到ES模块文件,从而触发报错。引入dist目录下的cjs版本就能完美适配CommonJS环境。
升级Node.js版本(推荐长期方案)
Node v12已经停止官方维护,对ES模块的支持有限。升级到v14或更高版本,不仅能解决这个Axios的兼容性问题,还能获得官方提供的安全更新和更多新特性。切换项目为ES模块(可选)
在项目根目录的package.json中添加"type": "module",然后把app.js里的代码改成ES模块语法:import axios from 'axios'; console.log("Test");注意Node v12运行ES模块需要加上
--experimental-modules参数,执行命令改为node --experimental-modules app.js。这个方案适合愿意尝试ES模块的场景,但对新手来说可能存在额外的适配成本。
内容的提问来源于stack exchange,提问作者Moerwald
相关产品推荐
相关产品推荐

