安装三方库。
命令格式
ohpm install [options] [[<@group>/]<pkg>[@<version> | @tag:<tag>]] ...
ohpm install [options] <folder>
ohpm install [options] <har file>
alias: i
说明
- @group:三方库的命名空间,可选。
- pkg:三方库名称,可选;当 install 后面没有指定三方库名称时,会根据当前目录下 oh-package.json5 定义的依赖关系进行全量安装。
- version:三方库的版本号,可选。
- tag:三方库的标签,标签会标记三方库的某个版本号,可选。
功能描述
用于安装指定组件或 oh-package.json5 文件中所有的依赖。如果存在 oh-package-lock.json5 文件,安装将取决于 oh-package-lock.json5 文件中锁定的版本。
-
ohpm install
将依赖项安装到本地 oh_modules 文件夹中,并将所有依赖项作为 dependencies,写入 oh-package.json5 文件。
-
ohpm install <folder>
安装本地文件夹,则默认会创建一个软链接指向该文件夹。如果安装不想以创建软链接的形式,则需要增加 --no-link 参数。
示例:
ohpm install ../folder
-
ohpm install <har file>
安装压缩包,请注意压缩包的要求:
- 文件名必须使用 .tar, .tar.gz, .tgz, .har 作为扩展名;
- 压缩包里面包含子文件 package;
- 子文件夹 package 下面必须包含 oh-package.json5 文件,且配置文件中必须有 name 和 version 字段。
- ohpm install ./package.har
示例:
ohpm install ./package.har
Options
all
- 默认值:false
- 类型:Boolean
可以在 install 命令后面配置 --all 参数,安装您项目下所有模块在其 oh-package.json5 中配置的全部依赖项。
save-dynamic
- 默认值:false
- 类型:Boolean
可以在 install 命令后面配置 --save-dynamic 参数,安装的三方库信息将会写入 oh-package.json5 文件的 dynamicDependencies 中。
save-dev
- 默认值:false
- 类型:Boolean
可以在 install 命令后面配置 --save-dev 参数,安装的三方库信息将会写入 oh-package.json5 文件的 devDependencies 中。
save-prod
- 默认值:true
- 类型:Boolean
可以在 install 命令后面配置 --save-prod 参数,安装的三方库信息将会写入 oh-package.json5 文件的 dependencies 中,这是 ohpm 的默认行为。
no-save
- 默认值:false
- 类型:Boolean
可以在 install 命令后面配置 --no-save 参数,安装的三方库信息将不会写入 oh-package.json5 文件中。
no-link
- 默认值:false
- 类型:Boolean
可以在 install 命令后面配置 --no-link 参数,安装本地文件夹时,则不会创建一个软链接指向该文件夹,而是将依赖项将作为常规依赖项打包和安装。
prefix
- 默认值:""
- 类型: string
可以在 install 命令后面配置 --prefix <string> 参数,用来指定包的根目录,该目录下必须存在 oh-package.json5 文件。
parameterFile
- 默认值:无
- 类型: string
- 别名:pf
可以在 install 命令后面配置 --parameterFile <string> 参数,用来指定参数化配置文件地址。使用该命令前需保证项目级别的oh-package.json5中已配置parameterFile参数。
registry
- 默认值:""
- 类型:URL
可以在 install 命令后面配置 --registry <registry> 参数,指定仓库地址;如果没有指定,默认从配置中获取仓库地址。
fetch_timeout
- 默认值:60000
- 类型: Number
- 别名:ft
可以在 install 命令后面配置 -ft <number> 或者 --fetch_timeout <number> 参数,设置操作的超时时间,如果没有指定,默认超时时间为60000ms。
strict_ssl
- 默认值:true
- 类型: Boolean
可以在 install 命令后面配置 --strict_ssl true 参数,校验 https 证书;配置 --strict_ssl false 参数,不校验 https 证书。
max_concurrent
- 默认值:50
- 类型: Number
- 别名:mc
可以在 install 命令后面配置 -mc <number> 或者 --max_concurrent <number> 参数,设置最大活动并发请求数(即ohpm操作期间任何时间的最大网络请求数),如果没有指定,默认最大并发请求数为50次。
retry_times
- 默认值:1
- 类型: Number
- 别名:rt
可以在 install 命令后面配置 -rt <number> 或者 --retry_times <number> 参数,设置操作失败前的最大重试次数,如果没有指定,默认最大重试次数为1次。
retry_interval
- 默认值:1000
- 类型: Number
- 别名:ri
可以在 install 命令后面配置 -ri <number> 或者 --retry_interval <number> 参数,设置重试失败前的等待时间,如果没有指定,默认等待时间为1000ms。
experimental-concurrently-safe
- 默认值:true
- 类型:Boolean
可以在 install 命令后面配置 --experimental-concurrently-safe 参数,并发安全地安装依赖。这是一个实验性选项。
target_path
- 默认值:无
- 类型:string
可以在 install 命令后面配置 --target_path <string> 参数,用来指定在特定目标产物target语境下各模块的依赖配置文件(oh-package.json5)的路径。在执行ohpm install时,ohpm会优先安装<target_path>/<moduleName>/oh-package.json5文件中依赖。详情参见target_path。
示例
安装 lottie 三方库,执行以下命令:
ohpm install @ohos/lottie
结果示例:
oh_modules
ohpm 1.0.0~1.3.0
使用 ohpm 安装时,项目中各 Module 的依赖项被统一安装在 Module 根目录下的 oh_modules 目录中,Module 中所有直接依赖和间接依赖都以平铺的方式存储在 oh_modules 目录下的 .ohpm 目录中,Module 的直接依赖则以软链接的方式添加进 oh_modules 文件夹的根目录中。因此,相同依赖项只会安装一次,从而减少磁盘使用空间,加快安装速度。
ohpm 1.4.x
ohpm 客户端从 1.4.0 版本开始,同一项目下所有 Module 的依赖都会被统一安装在项目根目录下的 oh_modules 目录中,同时会在项目各 Module 根目录下的 oh_modules 中生成该 Module 的直接依赖的软连接,这些软连接会指向项目根目录下 oh_modules 中的 .ohpm 目录下依赖实际存储目录。
target_path
为了支持在构建过程中针对不同的产物定制不同的依赖,hvigor会在构建时根据目标产物target为各模块自动生成定制的依赖配置文件(oh-package.json5),开发者可以在ohpm install时使用target_path选项来指定在特定目标产物target语境下各模块的依赖配置文件(oh-package.json5)的路径。
ohpm会优先安装<target_path>/moduleName/oh-package.json5文件中配置的依赖,并在<project_root>/moduleName下生成对应的oh-package-<targetName>-lock.json5文件。当指定target_path时,默认会开启依赖版本冲突自动处理功能,在依赖安装完成后,ohpm还会根据实际安装的依赖版本在<target_path>/resolve-conflict/moduleName目录下生成新的oh-package.json5文件。
target_path目录结构示例:
+---default // <targetName>默认为default
| | dependencyMap.json5 // 记录在特定target语境下的各模块依赖配置文件路径
| +---module1 // 在特定target语境下某模块的依赖配置文件的存储目录,与原模块根目录同名
| | oh-package.json5 // 在特定target语境下某模块依赖配置文件
| +---module2
| | oh-package.json5
| | oh-package.json5 // 在特定target语境下生成的工程级依赖配置文件
dependencyMap.json5内容示例:
{targetName: "default",rootDependency: "./oh-package.json5"dependencyMap: {"module1": "./module1/oh-package.json5","module2": "./module2/oh-package.json5"}
}
ohpm install指定target_path时依赖配置优先级说明:
1、<target_path>/dependencyMap.json5中rootDependency配置的oh-package.json5的优先级高于<project_root>/oh-package.json5。
2、.ohpmrc中projectPackageJson指定的项目级配置文件中overrides、overrideDependencyMap配置优先级同时高于<target_path>/dependencyMap.json5中rootDependency配置的oh-package.json5中对应配置 和 <project_root>/oh-package.json5中对应配置。
3、<target_path>/moduleName/oh-package.json5的优先级高于overrideDependencyMap中的依赖配置文件。
4、overrides中的依赖版本优先级高于<target_path>/moduleName/oh-package.json5中对应的依赖版本。
注意
仅当<target_path>/dependencyMap.json5中targetName的值不为空且不等于'default'时,<project_root>/moduleName目录下生成的lock文件名才会变更为:oh-package-targetName-lock.json5。
最后
有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?但是又不知道从哪里下手,而且学习时频繁踩坑,最终浪费大量时间。所以本人整理了一些比较合适的鸿蒙(HarmonyOS NEXT)学习路径和一些资料的整理供小伙伴学习
点击领取→纯血鸿蒙Next全套最新学习资料(安全链接,放心点击)
希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!
一、鸿蒙(HarmonyOS NEXT)最新学习路线
有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,内容包含:(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)…等技术知识点。
获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
二、HarmonyOS Next 最新全套视频教程
三、《鸿蒙 (OpenHarmony)开发基础到实战手册》
OpenHarmony北向、南向开发环境搭建
《鸿蒙开发基础》
- ArkTS语言
- 安装DevEco Studio
- 运用你的第一个ArkTS应用
- ArkUI声明式UI开发
- .……
《鸿蒙开发进阶》
- Stage模型入门
- 网络管理
- 数据管理
- 电话服务
- 分布式应用开发
- 通知与窗口管理
- 多媒体技术
- 安全技能
- 任务管理
- WebGL
- 国际化开发
- 应用测试
- DFX面向未来设计
- 鸿蒙系统移植和裁剪定制
- ……
《鸿蒙进阶实战》
- ArkTS实践
- UIAbility应用
- 网络案例
- ……
四、大厂面试必问面试题
五、鸿蒙南向开发技术
六、鸿蒙APP开发必备
七、鸿蒙生态应用开发白皮书V2.0PDF
完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结
总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。