Flutter for OpenHarmony: Flutter 三方库 husky 守卫鸿蒙项目的 Git 提交规范(前端工程化必备)

Flutter for OpenHarmony: Flutter 三方库 husky 守卫鸿蒙项目的 Git 提交规范(前端工程化必备)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net

在这里插入图片描述

前言

在 OpenHarmony 项目的团队协作中,我们最怕遇到“带病提交”的代码。比如:某位开发者提交的代码没经过 dart format 美化、或是包含明显的 lint 警告,甚至导致整个鸿蒙工程编译失败。如果在 CI(持续集成)阶段才发现,修复成本就太高了。

husky 是从前端生态圈引进的 Git Hooks 管理神器。它能让你极简地配置 Git 的各个钩子(如 pre-commit),在代码真正提交到远端(AtomGit)之前,强制执行格式化或单元测试,确保入库的代码永远是高质量的。


一、Git Hook 工作流模型

husky 在本地提交阶段建立了一道自动化的“安检门”。

通过

失败

开发者提交 (Commit)

Git Pre-commit 钩子

运行 dart format / lints

本地仓库记录

阻止提交 (保持源码纯净)


二、核心配置实战

2.1 初始化 husky

在鸿蒙项目的根目录下,首先安装并启用。

# 💡 假设已通过 pub 引入 husky 依赖 dart run husky install
在这里插入图片描述

2.2 添加 pre-commit 钩子

我们希望在提交前自动格式化所有鸿蒙 Dart 代码。

# 💡 添加钩子:在提交前执行代码美化 dart run husky add .husky/pre-commit "dart format lib/"
在这里插入图片描述

2.3 在提交前运行鸿蒙单元测试

# 💡 确保提交的代码不破坏现有的功能逻辑 dart run husky add .husky/pre-commit "flutter test"
在这里插入图片描述

三、常见应用场景

3.1 强制鸿蒙代码风格统一

在多人协作开发鸿蒙应用时,利用 husky 结合 lint_staged,只对本次修改的文件执行 dart format。这避免了因“格式差异”导致的 Git 合并冲突,让鸿蒙代码评审(CR)聚焦在逻辑本身。

3.2 鸿蒙敏感信息审计

在提交代码前,通过脚本扫描源码中是否包含硬编码的鸿蒙测试 Token 或私钥,保护鸿蒙项目的信息安全。


四、OpenHarmony 平台适配

4.1 适配 AtomGit 协作环境

💡 技巧:鸿蒙生态推荐使用 AtomGit 进行代码托管。在配置 husky 时,建议将钩子脚本同步提交到仓库。这样,团队中每个克隆项目的鸿蒙开发者只要运行一次 dart pub get,本地的 Git 钩子就会自动激活,实现了团队内“强制化”的代码质量管控。

4.2 零性能开销

husky 只在 Git 执行特定动作(如 commit, push)时触发一次。对于开发环境的鸿蒙 IDE 几乎没有任何性能负担。它带来的是工程确定性的极大提升,杜绝了“低级代码”流入鸿蒙仓库的可能性。


五、完整实战示例:鸿蒙工程“零配置”安检脚本

本示例演示如何通过 husky 串联起一整套提交前的检测逻辑。

#!/bin/sh# 💡 文件位置: /ohos_project/.husky/pre-commitecho"🚀 正在启动鸿蒙工程 pre-commit 哨兵..."# 1. 代码格式化校验echo"🎨 正在美化代码..." dart format --set-exit-if-changed lib/ if[$? -ne 0];thenecho"❌ 错误:代码格式不标准,已为您自动拦截。请运行 'dart format' 后重试。"exit1fi# 2. 静态分析校验echo"🔍 正在进行静态审计 (Linter)..." flutter analyze lib/ if[$? -ne 0];thenecho"❌ 警告:代码中存在 lint 问题,请修复后再提交。"exit1fiecho"✅ 安检通过!准予提交到鸿蒙源码库。"
在这里插入图片描述

六、总结

husky 软件包是 OpenHarmony 开发者打磨“工业级”项目的必选项。它将原本靠“口头约定”的代码规范转化为了“代码层面”的硬性限制。在一个成熟、稳定的鸿蒙应用研发体系中,通过引入这种前置校验机制,不仅能极大减轻 CI 阶段的压力,更是每一位专业鸿蒙工程师对代码质量负责的体现。

Read more

【使用 NVM 安装 Node.js 22 并配置国内镜像加速】

安装 NVM Windows用户可通过下载nvm-windows的.exe安装包完成安装。Linux或macOS用户使用以下命令: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh |bash 安装后需重新打开终端或执行source ~/.bashrc使配置生效。 配置国内镜像源 Windows系统在CMD/PowerShell中设置环境变量: set NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/ Linux/macOS用户将以下内容添加到~/.bashrc或~/.zshrc: exportNVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/ 执行source ~/.bashrc立即生效。 安装Node.js 22

By Ne0inhk
Flutter 第三方库 spa 的鸿蒙适配实战 - 打造单页应用架构、动态渲染路由状态及鸿蒙大屏多窗体验优化方案

Flutter 第三方库 spa 的鸿蒙适配实战 - 打造单页应用架构、动态渲染路由状态及鸿蒙大屏多窗体验优化方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 第三方库 spa 的鸿蒙适配实战 - 打造单页应用架构、动态渲染路由状态及鸿蒙大屏多窗体验优化方案 前言 随着移动端交互的日益复杂,用户对 App 的流畅度要求已不仅仅停留在“帧率”上,更多的是关于页面切换的“无缝感”。单页应用(Single Page Application, SPA)模式,通过在一个长生命周期的视图内动态替换内容节点,有效地避免了频繁的页面推栈(Push/Pop)带来的布局重绘开销。 spa 库是 Flutter 生态中一个非常独特且高效的路由增强工具。它将路由状态抽象为一套可观察的树状结构,让开发者能像管理 Web 应用一样管理 Flutter 的页面状态。 在鸿蒙系统(OpenHarmony)适配实战中,面对折叠屏的灵活切换和平板的多窗协同,spa 提供了一种天然的“响应式分发”基座。

By Ne0inhk
Flutter 组件 injectfy 适配鸿蒙 HarmonyOS 实战:逻辑注入矩阵,构建跨模块解耦与动态依赖管理架构

Flutter 组件 injectfy 适配鸿蒙 HarmonyOS 实战:逻辑注入矩阵,构建跨模块解耦与动态依赖管理架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 injectfy 适配鸿蒙 HarmonyOS 实战:逻辑注入矩阵,构建跨模块解耦与动态依赖管理架构 前言 在鸿蒙(OpenHarmony)生态迈向超大规模应用拆分、涉及数百个独立 Feature 模块与底层硬件服务深度解耦的背景下,如何实现灵活的“控制反转(IoC)”与“依赖注入(DI)”,已成为决定应用架构可维护性的“生命线”。在鸿蒙设备这类强调模块化挂载与 HAP/HSP 动态分发的环境下,如果应用内部的组件实例依然采用强耦合的硬编码初始化,由于由于各模块间复杂的循环依赖,极易由于由于初始化顺序错乱导致应用在流转拉起时的崩溃。 我们需要一种能够实现零成本解耦、支持单例(Singleton)与工厂(Factory)模式且具备极简注册语义的依赖注入框架。 injectfy 为 Flutter 开发者引入了轻量级的对象容器管理方案。它不仅支持对底层 Service 的全局托管,更提供了灵活的注入探测机制。在适配到鸿蒙

By Ne0inhk
爬虫系列-爬取公众号文章

爬虫系列-爬取公众号文章

目录 * 前言 * 文章爬取 * 登录微信公众平台 * 查看数据来源 * 分析数据 * 数据提取 * 源码 * 效果 * 共勉 * 博客 * python资料 前言 目前主要爬取微信公众号的文章有以下三种方式: * 通过微信搜狗搜索,但是这只能根据微信公众号的的文章标题和公众号名字来进行搜索,而且时间不一,文章顺序很乱 * 通过微信公众平台里的接口进行获取,可以通过指定公众号来查看所有的本公众号下的所有文章,这样就可以有序的爬取指定公众号里的文章数据了,这里需要你有一个自己的微信公众号 * 通过WeWe RSS开源项目,把项目部署到本地,然后通过订阅公众号的方式来进行获取文章的数据。 这里要讲的是第二种方式,通过微信公众号平台来获取数据。 文章爬取 登录微信公众平台 这里需要先登录自己的微信公众平台,然后在首页下新的创作选择文章,点进去之后在正文添加超链接,然后再账号那一行选择要爬取的公众号,接着就会出现公众号发布过的文章,如下图: 查看数据来源 下面就是人民日报公众号发布过的文章列表,这里按F12查看数据来

By Ne0inhk