npm install axios安装成功依赖后
const axios = require('axios');//只要写这一句,上传运行后就会出错(请参考下图)
如何正确引入axios并且上传云端没问题?
unicloud的运行环境Node.js 8
试过的方法都不成功:
方法1:这个错误提示仍然表明,您在使用ES6的模块导入语法,但是Node.js 8版本不支持这种语法。因此,您需要修改代码来使用CommonJS规范的模块导入语法。
为了正确导入axios模块,您可以将代码改为:
javascript
Copy code
const axios = require('./lib/axios');
方法2:
在使用Babel转换node_modules里的包之前,需要确保你的云函数项目根目录下已经安装了@babel/core和@babel/preset-env两个依赖。
然后,在项目根目录下创建一个名为.babelrc的文件,并添加以下内容:
json
Copy code
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "8"
}
}
]
]
}
这里指定了targets为node 8,表示要编译成兼容Node.js 8环境的代码。
然后,在你的云函数入口文件(例如index.js)的最开始处添加以下代码:
javascript
Copy code
require('@babel/register')({
ignore: [/\/node_modules\//],
presets: ['@babel/preset-env']
})
这里的ignore选项是为了告诉Babel在编译代码时忽略node_modules目录下的代码。
最后,运行云函数时,Babel会自动对node_modules里的包进行转换,以确保它们在Node.js 8环境下可以正常运行。