鸿蒙NEXT开发:工具常用命令—install

news2024/11/18 3:40:02

 安装三方库。

命令格式

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>

    安装压缩包,请注意压缩包的要求:

    1. 文件名必须使用 .tar, .tar.gz, .tgz, .har 作为扩展名;
    2. 压缩包里面包含子文件 package;
    3. 子文件夹 package 下面必须包含 oh-package.json5 文件,且配置文件中必须有 name 和 version 字段。
    4. 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 文件中。

  • 默认值: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学习资料

总结
总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

                        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1867809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

count(*) over (partition by ……)用法详解

select id,count(*) over(partition by pro_id) from sal; 以pro_id分组&#xff0c;统计分组后每个pro_id的记录总数及对应的id&#xff1b; 类似还有count(*) over(order by ……)、sum(amount) over(partition by ……)等&#xff0c;略有区别

在Linux Ubuntu系统中使用Pascal语言

Pascal是一种结构化编程语言&#xff0c;而Free Pascal作为其现代编译器&#xff0c;不仅支持跨多种操作系统和处理器架构&#xff0c;还提供了高效的内存使用和函数重载等先进功能。Free Pascal继承了Pascal语言的核心特性&#xff0c;同时进行了扩展和优化&#xff0c;使其成…

Apache Flink类型及序列化研读生产应用|得物技术

一、背景 序列化是指将数据从内存中的对象序列化为字节流&#xff0c;以便在网络中传输或持久化存储。序列化在Apache Flink中非常重要&#xff0c;因为它涉及到数据传输和状态管理等关键部分。Apache Flink以其独特的方式来处理数据类型以及序列化&#xff0c;这种方式包括它…

彩虹PLM系统:引领汽车行业的数字化转型

彩虹PLM系统&#xff1a;引领汽车行业的数字化转型 彩虹PLM系统作为汽车行业数字化转型的引领者&#xff0c;凭借其卓越的技术实力和丰富的行业经验&#xff0c;为汽车行业带来了全面的解决方案。以下是彩虹PLM系统如何引领汽车行业数字化转型的详细分析&#xff1a; 一、整合全…

Redis 7.x 系列【7】数据类型之列表(List)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 RPUSH2.2 LPUSH2.3 LRANGE2.4 LINDEX2.6 LREM2.7 LLEN2.8 LPOP…

8.计算机视觉—增广和迁移

目录 1.数据增广数据增强数据增强的操作代码实现2.微调 迁移学习 Transfer learning(重要的技术)网络结构微调:当目标数据集比源数据集小得多时,微调有助于提高模型的泛化能力。训练固定一些层总结代码实现1.数据增广 CES上的真实故事 有一家做智能售货机的公司,发现他们…

glif: 爆火 MeMe 生成器

glif 是一个 Agent 搭建平台&#xff0c;有人用其搭建了一个 MeMe 生成器, 短时间内已经有 280k 次使用&#xff01; 如图所示&#xff0c;glif 最大的特点是有一个实验性支持的 Canvas 节点&#xff0c;可以将生成的内容任意布局输出&#xff0c;提升了可控性。

7.计算机视觉—硬件和训练

目录 1.深度学习硬件:CPU和GPUCPU内存结构提升CPU利用率提升GPU利用率CPU与GPU牌子CPU/GPU高性能计算编程2.深度学习硬件:TPU和其他DSPFPGAAI ASIC总结3.单机多卡并行:多GPU数据并行VS模型并行总结4.多GPU训练代码实现数据同步数据分发训练多GPU的简洁实现5.分布式训练1.深度…

ICRA 2024 基于transformer大模型实现机器人自主导航

在陌生环境中进行导航的机器人需要提供决策&#xff1a;面向任务的导航&#xff08;到达设定好机器人目标点&#xff09;&#xff0c;以及 与任务无关的探索&#xff08;在新颖的环境中寻找目标&#xff09;。通常&#xff0c;这些角色由单独的模型处理&#xff0c;例如通过使用…

“北京到底有谁在啊”影视APP开发,解锁最简单的快乐

随着电视剧《玫瑰的故事》在腾讯视频APP热播&#xff0c;APP也增加了很多热度&#xff0c;一款丰富的影视APP&#xff0c;无论是热门大片、经典影视剧、还是最新综艺节目&#xff0c;能畅享无限精彩的影视内容&#xff01; 开发影视APP&#xff0c;需要专业的技术服务商来解决…

DM达梦数据库转换、条件函数整理

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

【分布式系列】分布式锁在 Redis 主从部署中的挑战

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

ABAP ALV报表性能优化 经验总结

优化ALV报表&#xff0c;最主要就是优化取数逻辑和数据库查询。因为几乎在所有的程序中都会用到数据库查询&#xff0c;所以这篇文章的内容也不仅局限于SAP、ABAP程序&#xff0c;虽然ABAP有其特殊之处。 优化的时候我遵从以下几个原则&#xff1a; 1.把数据库连接视为一种极其…

Nginx常见的基本配置(全网最详细!!!)

&#x1fa81;Nginx常用命令 &#x1f3a8;Nginx正向代理 &#x1f94f;Nginx反向代理 &#x1f52e;Nginx负载均衡 &#x1f381;Nginx基本配置详解 ## # 全局配置 ##user www-data; ## 配置 worker 进程的用户和组 worker_processes auto; ## 配置 worke…

最新版Git安装指南使用指南

首先&#xff0c;访问Git的官方网站https://git-scm.com下载适用于您操作系统的安装包。您也可以选择使用阿里云镜像来加速下载过程。 也可以用国内地址下载https://pan.quark.cn/s/0293d76e58bchttps://pan.quark.cn/s/0293d76e58bc安装过程 在这里插入图片描述 2、点击“…

前缀和算法系列|概念讲解|应用场景|大量例题讲解

大家好,我是LvZi,今天带来前缀和算法系列|概念讲解|应用场景|大量例题讲解 一.模版解析 1.一维前缀和 一维前缀和就是一个简单的dp问题 状态表示:dp[i]:以i位置为结尾的所有元素的和状态转移方程:dp[i] dp[i - 1] arr[i] 链接:一维前缀和(模版题) 代码: import java.ut…

短信群发70字计费标准及内容编辑规范详解

短信群发营销&#xff0c;作为一种简单高效的推广方式&#xff0c;备受企业和个人青睐。然而&#xff0c;在启动短信群发营销前&#xff0c;了解相关常识同样重要。 一、短信字数限制与计费标准 短信群发时&#xff0c;字数限制是一个关键因素。每个汉字、字母、数字、符号均计…

虚拟机字节码执行引擎之运行时栈帧结构

概述 执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定…

艺术与科技的精湛融合:探讨AI绘画与AI动画的交汇点

前言 艺术与科技的精湛融合&#xff1a;探讨AI绘画与AI动画的交汇点 在当代社会中&#xff0c;艺术和科技的结合呈现出了从来灭有的创新和可能性。随着人工智能技术的不断发展&#xff0c;AI绘画与AI动画的融合愈发引人瞩目。这一融合不仅给艺术家们带来了更多创作的可能&…

【项目实训】数据库内容丰富

经团队讨论&#xff0c;对前端页面展示数据进行了增加&#xff0c;于是相应的修改数据库 经团队成员使用大模型对各公司面试经验中问题的总结优化&#xff0c;我们打算将大模型的回答存储到数据库中&#xff0c;以显示在前端页面 于是在数据库中存储大模型的回答&#xff1a;…