Taro 是一套遵循 React 语法规范的 多端开发 解决方案,所以一开始打算使用cos-js-sdk-v5
,结果发现一直userAgent报错,代理出错,查看源码cos-js-sdk-v5/lib/request.js
,才发现了自己忽略了一个致命错误。
cos-js-sdk-v5
使用的是jquery
请求,而小程序是无法使用jquery
的,主要是因为:小程序的页面逻辑是在JsCore
中运行,JsCore
是一个没有窗口对象的环境,所以脚本中不能使用window
对象,也无法在脚本中操作组件,而jquery
会使用到window
对象和document
对象,所以无法使用。
进而,使用腾讯云对象储存服务对接小程序的cos-wx-sdk-v5,按照文档直接拖到项目了,运行正确,文件成功上传到腾讯云,但回调function (err, data)
始终不运行。怎么办,只有一点点排查,在原生中是正常的,那么只能是Taro编译的时候出问题了,所以我们这样解决,在Taro编译时,忽略cos-wx-sdk-v5
文件,我们在config/index.js
配置如下:
...
weapp: {
compile: {
exclude:['src/libs/cos-wx-sdk-v5.js'] // 忽略的文件位置数组
},
module: {
postcss: {
autoprefixer: {
enable: true,
config: {
browsers: [
'last 3 versions',
'Android >= 4.1',
'ios >= 8'
]
}
},
pxtransform: {
enable: true,
config: {
}
},
url: {
enable: true,
config