安装三方库。
ohpm install [options] [[<@group>/]<pkg>[@<version> | @tag:<tag>]] ... ohpm install [options] <folder> ohpm install [options] <har file> alias: i
用于安装指定组件或 oh-package.json5 文件中所有的依赖。如果存在 oh-package-lock.json5 文件,安装将取决于 oh-package-lock.json5 文件中锁定的版本。
ohpm install
将依赖项安装到本地 oh_modules 文件夹中,并将所有依赖项作为 dependencies,写入 oh-package.json5 文件。
ohpm install <folder>
安装本地文件夹,则默认会创建一个软链接指向该文件夹。
示例:
ohpm install ../folder
ohpm install <har file>
安装压缩包,请注意压缩包的要求:
示例:
ohpm install ./package.har
可以在install命令后面不配置参数、配置--all或者--install_all 参数,安装您项目下所有模块在其oh-package.json5中配置的全部依赖项。
从ohpm 26.0.0.630版本开始,如无需安装,可配置--no-install_all参数。
可以在 install 命令后面配置 --save-dynamic 参数,安装的三方库信息将会写入 oh-package.json5 文件的 dynamicDependencies 中。
可以在 install 命令后面配置 --save-dev 参数,安装的三方库信息将会写入 oh-package.json5 文件的 devDependencies 中。
可以在 install 命令后面配置 --save-prod 参数,安装的三方库信息将会写入 oh-package.json5 文件的 dependencies 中,这是 ohpm 的默认行为。
可以在install命令后面配置--no-save参数,安装的三方库信息将不会写入 oh-package.json5 文件中。不配置参数时,安装的三方库信息将写入oh-package.json5文件中。
可以在 install 命令后面配置 --prefix <string> 参数,用来指定包的根目录,该目录下必须存在 oh-package.json5 文件。
可以在 install 命令后面配置 --pf <string> 或者 --parameterFile <string> 参数,用来指定参数化配置文件地址。使用该命令前需保证项目级别的oh-package.json5中已配置parameterFile参数。
可以在 install 命令后面配置 --ft <number> 或者 --fetch_timeout <number> 参数,设置操作的超时时间,如果没有指定,默认超时时间为60000ms。
在install命令后面不配置参数、配置--strict_ssl或--strict_ssl true参数时,开启校验HTTPS证书。
从ohpm 26.0.0.630版本开始,如需关闭校验,可配置--no-strict_ssl或--strict_ssl false参数,推荐使用--no-strict_ssl参数。
可以在 install 命令后面配置 --mc <number> 或者 --max_concurrent <number> 参数,设置最大活动并发请求数(即ohpm操作期间任何时间的最大网络请求数),如果没有指定,默认最大并发请求数为50次。
可以在 install 命令后面配置 --rt <number> 或者 --retry_times <number> 参数,设置操作失败前的最大重试次数,如果没有指定,默认最大重试次数为1次。
可以在 install 命令后面配置 --ri <number> 或者 --retry_interval <number> 参数,设置重试失败前的等待时间,如果没有指定,默认等待时间为1000ms。
可以在 install 命令后面配置 --experimental-concurrently-safe 参数,并发安全地安装依赖。这是一个实验性选项。
可以在 install 命令后面配置 --target_path <string> 参数,用来指定在特定目标产物target语境下各模块的依赖配置文件(oh-package.json5)的路径。在执行ohpm install时,ohpm会优先安装<target_path>/<moduleName>/oh-package.json5文件中的依赖。详情参见target_path。
从ohpm 6.0.2.636版本开始,可以在 install 命令后配置--log_level <string>参数,指定执行当前命令的日志级别(info、debug、warn、error),如果未指定该值则日志级别为.ohpmrc中配置的log_level的级别。
从ohpm 6.0.2.636版本开始,可以在命令后配置--debug参数,指定执行当前命令的日志级别为debug,该配置仅在当前命令行生效,不修改.ohpmrc中的日志级别,如果未指定该值则日志级别为.ohpmrc中配置的log_level的级别。
从ohpm 6.0.2.636版本开始,可以在 install 命令后面配置 --lockfile_stable_order 参数,当oh-package.json5文件未变更时,当前已生成的oh-package-lock.json5各字段内容不变。
从ohpm 6.0.2.636版本开始,可以在 install 命令后面配置 --odm_r2_project_root 参数。当存在overrideDependencyMap配置,且其配置项对应的配置文件内存在相对路径的依赖配置时,ohpm会基于工程根路径解析和查询相对路径,详情参见odm_r2_project_root。
从ohpm 6.0.2.636版本开始,可以在 install 命令后面配置 --enable_cross_process_lock 参数,由于oh_modules目录结构限制,ohpm不支持在同一个工程下并行运行多个ohpm install、ohpm update或ohpm uninstall命令。若需要在同一个工程下执行多个ohpm install、ohpm update或ohpm uninstall命令,可将该配置设置为true,使多个命令以串行的方式运行。
从ohpm 6.0.2.636版本开始,可以在 install 命令后面配置 --resolve_conflict_strict 参数,ohpm会按照严格模式处理依赖版本冲突,详情参见resolve_conflict_strict。
从ohpm 6.0.2.636版本开始,可以在 install 命令后面不配置参数或配置--resolve_conflict参数,ohpm会自动处理依赖版本冲突,详情参见resolve_conflict。
从ohpm 26.0.0.630版本开始,如无需自动处理时,配置--no-resolve_conflict参数。
从ohpm 26.0.0.410版本开始,可以在 install 命令后面配置 --auto_skip_install参数,设置是否需要校验跳过本次安装,详情参见auto_skip_install。
从ohpm 26.0.0.410版本开始,可以在 install 命令后面配置 --metadata_cache 参数,设置是否读取oh-install-meta.json5文件内的缓存元数据和~/.ohpm/cache/metadata下的元数据缓存文件,详情参见metadata_cache。
从ohpm 26.0.0.630版本开始,可以在install命令后面配置--symlink_for_local_dep参数,设置后会对本地HAR依赖解压后的路径,创建软链接。详情参见symlink_for_local_dep。
使用 ohpm 安装时,项目中各 Module 的依赖项被统一安装在 Module 根目录下的 oh_modules 目录中,Module 中所有直接依赖和间接依赖都以平铺的方式存储在 oh_modules 目录下的 .ohpm 目录中,Module 的直接依赖则以软链接的方式添加进 oh_modules 文件夹的根目录中。因此,相同依赖项只会安装一次,从而减少磁盘使用空间,加快安装速度。
ohpm 客户端从 1.4.0 版本开始,同一项目下所有 Module 的依赖都会被统一安装在项目根目录下的 oh_modules 目录中,同时会在项目各 Module 根目录下的 oh_modules 中生成该 Module 的直接依赖的软链接,这些软链接会指向项目根目录下 oh_modules 中的 .ohpm 目录下依赖实际存储目录。
为了支持在构建过程中针对不同的产物定制不同的依赖,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。