当前位置: 首页 > wzjs >正文

与设计行业相关的网站wordpress 4.0 中文版

与设计行业相关的网站,wordpress 4.0 中文版,网站主题旁边的图标怎么做,阿里云服务器怎么用文章目录 引言构建脚本的架构与实现1. 脚本的核心职责与架构设计2. 环境检查与配置Shell环境验证源码根目录定位 3. 工具链配置详解Python环境设置Node.js配置 4. 依赖管理系统ohpm初始化SDK构建机制 5. 构建执行与结果处理工具链完整性检查构建系统结果反馈 引言 ​ 在OpenHa…

文章目录

    • 引言
    • 构建脚本的架构与实现
      • 1. 脚本的核心职责与架构设计
      • 2. 环境检查与配置
        • Shell环境验证
        • 源码根目录定位
      • 3. 工具链配置详解
        • Python环境设置
        • Node.js配置
      • 4. 依赖管理系统
        • ohpm初始化
        • SDK构建机制
      • 5. 构建执行与结果处理
        • 工具链完整性检查
        • 构建系统
        • 结果反馈

引言

​ 在OpenHarmony生态系统中,构建系统是开发流程的核心枢纽。build.sh脚本作为构建过程的统一入口,不仅简化了复杂的构建流程,更确保了跨平台开发环境的一致性。本文将从架构设计到实现细节,全面解析这个关键脚本的工作原理,帮助开发者深入理解OpenHarmony构建系统的内部机制。

构建脚本的架构与实现

1. 脚本的核心职责与架构设计

build.sh是OpenHarmony构建系统的入口点,承担着多重关键职责:

功能模块核心职责实现机制
环境管理确保构建环境一致性Shell环境检查、工具链配置
路径解析定位关键目录递归查找.gn文件
工具链管理提供标准化工具预置Python、Node.js等
依赖处理管理SDK和组件ohpm初始化、SDK构建
构建调度执行实际构建调用hb或entry.py
结果反馈提供构建反馈彩色输出、状态码处理

脚本采用分层架构设计:

环境准备
工具链配置
依赖管理
构建执行
结果反馈

环境准备工具链配置依赖管理构建执行结果反馈

2. 环境检查与配置

Shell环境验证
function check_shell_environment() {case $(uname -s) in Linux)shell_result=$(/bin/sh -c 'echo ${BASH_VERSION}')if [ -z "${shell_result}" ]; thenecho "请切换至Bash环境"fi;;# 其他平台处理esac
}

关键点

  • Bash必要性:依赖pushd/popd等Bash特有命令
  • Ubuntu适配:通过sudo dpkg-reconfigure dash切换默认Shell
  • 跨平台支持:目前主要支持Linux,macOS支持在开发中
源码根目录定位
while [[ ! -f "${SOURCE_ROOT_DIR}/.gn" ]]; doSOURCE_ROOT_DIR=$(dirname "${SOURCE_ROOT_DIR}")[[ "$SOURCE_ROOT_DIR" == "/" ]] && exit 1
done

.gn文件作为GN构建系统的标志,其定位原理:

  1. 从脚本所在目录开始向上递归
  2. 找到包含.gn文件的目录即为根目录
  3. 防止无限递归的安全检查

3. 工具链配置详解

Python环境设置
PYTHON3_DIR=${SOURCE_ROOT_DIR}/prebuilts/python/${HOST_DIR}/current/
PYTHON3=${PYTHON3_DIR}/bin/python3
[[ ! -f "$PYTHON3" ]] && echo "请执行prebuilts_download.sh" && exit 1
ln -sf "$PYTHON3" "${PYTHON3_DIR}/bin/python" # 创建兼容链接

设计理念

  • 版本隔离:使用项目预置Python而非系统Python
  • 兼容性处理:创建python→python3的软链接
  • 错误预防:提前检查避免构建中途失败
Node.js配置
EXPECTED_NODE_VERSION="14.21.1"
export PATH=${SOURCE_ROOT_DIR}/prebuilts/nodejs/node-v${EXPECTED_NODE_VERSION}/bin:$PATH# 严格版本检查
[[ "$(node -v)" != "v$EXPECTED_NODE_VERSION" ]] && exit 1# 国内镜像加速
npm config set registry https://repo.huaweicloud.com/repository/npm/
npm config set @ohos:registry https://repo.harmonyos.com/npm/

优化策略

  • 版本锁定:确保所有开发者环境一致
  • 镜像加速:使用国内源解决下载慢问题
  • 安全平衡strict_ssl false解决企业内网证书问题

4. 依赖管理系统

ohpm初始化
function init_ohpm() {# 下载命令行工具wget https://.../ohcommandline-tools-linux.zip# 初始化配置ohpm config set registry https://repo.harmonyos.com/ohpm/# 设置hvigor环境mkdir -p $HOME/.hvigor/wrapper/toolsecho '{"dependencies": {"pnpm": "7.30.0"}}' > package.jsonnpm install
}

ohpm核心功能

  1. 鸿蒙组件管理:专用OpenHarmony包仓库
  2. 混合生态支持:兼容npm包管理体系
  3. 安全扫描:对鸿蒙组件进行安全检查

hvigor的作用:作为前端构建系统,管理JS/TS项目的构建生命周期,使用pnpm提供高效的依赖管理。

SDK构建机制
function build_sdk() {./build.py --product-name ohos-sdk --gn-args sdk_platform=linux# 处理SDK包unzip "native-linux*.zip"api_version=$(grep apiVersion oh-uni-package.json | awk '{print $2}')mkdir -p $api_version# 组织SDK目录结构
}

SDK预构建原因

  • 工具链依赖:编译需要SDK中的编译器和库文件
  • 效率优化:避免重复构建耗时任务
  • 版本一致性:确保团队使用相同开发环境

触发条件

# 当预编译SDK不存在时自动构建
if [[ ! -d "${PREBUILT_SDK_DIR}" && "$*" != *ohos-sdk* ]]; thenbuild_sdk
fi

5. 构建执行与结果处理

工具链完整性检查
${PYTHON3} ${SOURCE_ROOT_DIR}/build/scripts/tools_checker.py

检查内容

  1. GN/Ninja等基础工具存在性
  2. 工具版本兼容性验证
  3. 环境变量配置正确性
  4. 磁盘空间充足性检查
构建系统
if grep -q "using_hb_new=false" <<< "$@"; then# 旧构建系统${PYTHON3} ${SOURCE_ROOT_DIR}/build/scripts/entry.py $@
else# 新构建系统${PYTHON3} ${SOURCE_ROOT_DIR}/build/hb/main.py build $@
fi

系统对比

特性传统系统(entry.py)现代系统(hb)
抽象层级底层(直接操作GN)高层(任务抽象)
使用难度高(需了解GN语法)低(简单命令)
产品配置手动管理内置产品管理
增量构建基础支持优化支持
未来支持维护模式持续增强
结果反馈
if [[ $? -ne 0 ]]; thenecho -e "\033[31m=====构建失败=====\033[0m"exit 1
elseecho -e "\033[32m=====构建成功=====\033[0m"
fi# 构建后处理扩展点
#(
#  source build_updater_package.sh
#)

文章转载自:

http://kXdhAAun.Lhxdq.cn
http://tLZ9R2pD.Lhxdq.cn
http://mEvV3lIZ.Lhxdq.cn
http://cxzA4ITs.Lhxdq.cn
http://nOhT63oH.Lhxdq.cn
http://oAkzCrxe.Lhxdq.cn
http://NUA5sz7i.Lhxdq.cn
http://h8kEFLS6.Lhxdq.cn
http://p3z2A7by.Lhxdq.cn
http://j75fUQGC.Lhxdq.cn
http://F0PHamqj.Lhxdq.cn
http://kDUSQHxY.Lhxdq.cn
http://ssN3mVD7.Lhxdq.cn
http://25ENuAr7.Lhxdq.cn
http://NDVwuT5P.Lhxdq.cn
http://QwDhrUNs.Lhxdq.cn
http://POVKruSi.Lhxdq.cn
http://qjW8qjC3.Lhxdq.cn
http://Lfo529Dg.Lhxdq.cn
http://bBFbDMzq.Lhxdq.cn
http://kpLcI36r.Lhxdq.cn
http://2hDbExe9.Lhxdq.cn
http://YsRaoSFh.Lhxdq.cn
http://pUMatovx.Lhxdq.cn
http://TxwT2WWj.Lhxdq.cn
http://TtuTvG7t.Lhxdq.cn
http://VX340VHS.Lhxdq.cn
http://5s1awsvM.Lhxdq.cn
http://IzVdXXL7.Lhxdq.cn
http://iXgxD7um.Lhxdq.cn
http://www.dtcms.com/wzjs/648644.html

相关文章:

  • 做外贸建网站需要推广吗网页设计就业
  • 深圳网站制作就找兴田德润优化推广网站推荐
  • 莘庄网站建设电影购买网站怎么设计
  • 旅游网站开发代码宝安沙井海岸城
  • html网站开发主要涉及哪些技术农业技术网站建设原则
  • 全国首批9所重点马院网站建设网络维护员工资多少
  • win7如何建设免费网站用asp做网站怎么美观
  • 长白山网站学做管理厦门旅游必去十大景点
  • 公司网站建立wordpress学校机构
  • php网站的开发环境网站建设 荆州
  • 濮阳网站建设熊掌号公司做网站济南
  • 毕业设计做网站哪种好成都山猫vi设计公司
  • 做番号网站违法么企业做网站好处
  • 网站上线前准备方案沈阳企业建站
  • 建网站需要学习什么做ps的网站有哪些功能吗
  • 天津网站建设网站推广在线ip代理网页
  • 做众筹网站如何免费建企业网站
  • 小米路由可以做网站吗net网站开发 介绍
  • 没钱怎么做网站网页设计怎么运行
  • 上海网站优化海民宿推广平台有哪些
  • 怎么免费建个免费的站点成都黑马程序员培训机构官网
  • 物联网平台网站链接买卖平台
  • php网站开发txt旅游网站建设技术有哪些内容
  • 保山网站建设服务大学生网络推广实训报告
  • 石城县网站建设外贸网站中的搜索产品功能如何实现
  • 天津做网站多少钱wordpress最好的系统
  • 成交型网站建设价格东莞横沥地图
  • 网站索引怎么做wordpress邮箱解析
  • 显示网站运行时间代码中国施工企业管理协会官网
  • 哪个网站可以做360度评估冠县做网站哪里好