从节点模块导入axios时出错



我已经通过npm安装了axios,并尝试将axios导入到我的前端脚本文件中。

我面临的错误是

未捕获语法错误:无法在模块外使用导入语句

这是我的app.js文件

import axios from 'axios';
function updateRecipt(items) {
axios.post('/update-reciept',items).then(res=>{
console.log(res);
})
}

注意:我也更改了";类型":"标签";至";类型":"模块";在axios package.json和import语句中const axios=require("../../node_module/axios"(。但它不适用于我的

您正在使用CommonJS。要导入axios,您可以执行

const axios = require("axios");

相反,如果您想使用ES模块,您需要转到package.json并添加"type": "module",(您也可以添加"type": "commonjs",以显式使用CommonJS(

您使用的是es6语法,而不是commonJS。尝试使用此

const axios = require('axios');

如果你想使用es6,你需要像巴别塔一样的东西

试着把它放在另一个文件中,然后这样做:

const axios = require('your_file.js');

然后返回到您的文件,并添加:

import axios from 'axios';
module.exports = axios

我使用babel解决了这个问题。

使用创建一个.babelrc文件

{
"presets": ["@babel/preset-env"]
}

将其添加到package.json 中的devDependencies

"@babel/core": "^7.22.10",
"@babel/preset-env": "^7.22.10",

将此添加到jest.config.js

module.exports = {
transform: {
"^.+\.jsx?$": "babel-jest"
}
};

最新更新