#jitoa #关于axios自动更新无法适配API9的解决方案 原创

安苒anran0
发布于 2023-9-17 17:14
浏览
0收藏

本博客由 金陵科技学院-开放原子开源社 刘张豪编写

@toc

相关环境

开发环境:DevEco Studio 3.1.1 Release
系统运行时:OpenHarmony 3.2 Releas

申明

本博客仅针对api9 且 已经导入axios 包的项目,如果想需要新建api9 项目导入axios 包在项目下方提出,如果有人需要,我就另外出一期视频。

问题描述

在axios 更新自 axios 2.0.3 版本后,
即使oh-package中声明了是用2.0.2 版本 。
老项目在清理缓存后也会自动更新到 2.0.3版本。
又因为2.0.3版本只支持使用API10 ,导致很多已经选用API 9 的 的应用也会没有办法正常编译。

问题出现规模

这两天这个问题很多,水群的时候也看到有人在提问。我正好也遇到了正好解决一下。

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

构建错误截图

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

构建错误信息

ERROR: The compatibleSdkVersion 9 cannot be smaller than version 10 declared in library [:axios] 
          as the library might be using APIS not available in 9

报错项目 oh-package.json5文件展示

{
  "license": "",
  "devDependencies": {
    "@ohos/hypium": "1.0.6"
  },
  "author": "",
  "name": "intelligentscale",
  "description": "Please describe the basic information.",
  "main": "",
  "version": "1.0.0",
  "dependencies": {
    "@ohos/axios": "^2.0.2"
  }
}

解决思路

既然最新的axios 没有办法使用api9 ,而且自动下载的axios 没有办法使用。
那么我手动把需要构建的axios 更换为 2.0.2版本,然后再构建项目。

理论可行开始实践

解决方案

1.找到相关目录

1.1.找到相关模块的存放目录

鸿蒙应用开发的相关目录都是存放在项目根目录下的oh_modules 中。

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

1.2.使用资源管理器打开相关目录

在资源管理器打开oh_modules

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

然后你就会打开下面这个目录

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

2. 放入老版本的axios

###2.1. 下载本文的附件

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

2.2. 将我附件内的文件

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

2.3.检查是否导入成功

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

3.检查项目

3.1尝试是否可以重新构建这个项目

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

一般到这里不报错就可以正常构建了
如果还是报错,加这个qq:1715139614私聊我

防止问题复现 [可选]

因为我的项目使用了git管理。
所以为了防止问题复现,可以将oh_modules 目录加入git中

#jitoa #关于axios自动更新无法适配API9的解决方案-鸿蒙开发者社区

全部搞定,下班

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
axios_2.0.2-oh_modules.zip 179.8K 92次下载
已于2023-9-18 08:42:01修改
3
收藏
回复
举报
8条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

感谢分享!

回复
2023-9-18 10:25:42
wx6509cfa3cb605
wx6509cfa3cb605

你用的是^2.0.2,当然锁定不了这个版本,远端有最新的版本,只要主版本号不变,都会更新到最新的版本。

想要锁死这个版本,去掉^就好了,不用还拷贝这个版本代码这么麻烦。


回复
2023-9-20 00:47:01
安苒anran0
安苒anran0 回复了 wx6509cfa3cb605
你用的是^2.0.2,当然锁定不了这个版本,远端有最新的版本,只要主版本号不变,都会更新到最新的版本。想要锁死这个版本,去掉^就好了,不用还拷贝这个版本代码这么麻烦。

学会了

回复
2023-9-20 19:56:37
安苒anran0
安苒anran0 回复了 wx6509cfa3cb605
你用的是^2.0.2,当然锁定不了这个版本,远端有最新的版本,只要主版本号不变,都会更新到最新的版本。想要锁死这个版本,去掉^就好了,不用还拷贝这个版本代码这么麻烦。

哪个文档有讲这个内容,是npm的知识点吗

回复
2023-9-20 19:57:15
感情丰富的毛巾
感情丰富的毛巾

你没有抓住问题的本质。

1、oh-package.json5 文件有两个,一个是工程级的,一个是entry目录下的。你是在工程级的文件里进行的。

2、你安装axios依赖,应该在entry目录下的oh-package.json5里进行。

添加axios依赖如下:

"dependencies": {
   @ohos/axios": "2.0.0"}
   }

3、然后,你应该到entry目录下的oh-modules去查看依赖,而不是工程级的oh-modules里去查看依赖。

回复
2023-11-13 14:19:41
安苒anran0
安苒anran0 回复了 感情丰富的毛巾
你没有抓住问题的本质。1、oh-package.json5 文件有两个,一个是工程级的,一个是entry目录下的。你是在工程级的文件里进行的。2、你安装axios依赖,应该在entry目录下的oh-package.json5里进行。添加axios依赖如下:"dependencies": { @ohos/axios": "2.0.0"} }3、然后,你应该到entry目录下的oh-modules去查看依赖,而不是工程级的oh-modules里去查看依赖。

感谢!!!我已经发现这个问题了,但是还没能花时间去重写一篇博客。

回复
2023-11-14 00:12:12
名字长一点容易记住
名字长一点容易记住 回复了 感情丰富的毛巾
你没有抓住问题的本质。1、oh-package.json5 文件有两个,一个是工程级的,一个是entry目录下的。你是在工程级的文件里进行的。2、你安装axios依赖,应该在entry目录下的oh-package.json5里进行。添加axios依赖如下:"dependencies": { @ohos/axios": "2.0.0"} }3、然后,你应该到entry目录下的oh-modules去查看依赖,而不是工程级的oh-modules里去查看依赖。

你好,请问,^2.0.2和2.0.2的区别是什么,

回复
2023-11-20 14:43:09
安苒anran0
安苒anran0 回复了 名字长一点容易记住
你好,请问,^2.0.2和2.0.2的区别是什么,

^2.0.2表示安装2.0.2以上的版本,2.0.2表示安装2.0.2版本。

回复
2024-1-3 14:32:48
回复
    相关推荐