鸿蒙开发:基于node脚本实现组件化运行

前言

本项目API>=13

上篇文章,我们通过DevEco Studio插件实现了单一模块运行,相对来说,还是非常的便捷,毕竟是可视化操作,不过,插件有一个潜在的问题需要告知,那就是单一模块如果没有默认的页面,在运行时是会报错的,也就是每个模块下需要有一个Index.ets页面做为模块的主入口,不过在创建模块的时候,默认都会创建这个页面,大家不要删除即可,当然了,后续也会针对插件做一层优化,没有这个默认页面默认去创建一个。

今天的内容同样也是和组件化运行相关的,只不过换了一种方式,那就是通过node脚本来实现。

node脚本的方式和IDE插件的方式功能是一模一样的,只是在实现上不同,使用node脚本无须再安装IDE插件,只需要把脚本放在项目中即可。

node脚本配置

脚本地址如下:

abnerming888.github.io/vip/load/st...

大家可以在自己项目根目录下新建同名文件,把内容复制进去即可,如下图所示:

脚本可分为四块,node start 为前两块,为固定模式,start为你的脚步文件名字,如果你保存的不是start名字,那么就改为你的名字即可;第三块是自己想要切换的组件名字,也就是你想让那个模块运行,第四块是默认的页面路径,这个可以不传,默认是pages/Index,执行案例如下:

txt 复制代码
node start 模块名字

鸿蒙开发是需要node环境的,一般不需要我们在额外配置,在下载DevEco Studio的时候会自行配置,为了验证node环境是否存在,我们可以在DevEco Studio底部终端,输入node -v,如果能正确显示出版本号,则有node环境。

如果没有node环境,我是说如果啊,有两种方式可以解决,第一种是大家可以从node官网下载,自行配置环境变量,第二种,就是使用DevEco Studio中自带的node环境。

DevEco Studio中自带的node环境,我们可以点击顶部的Run菜单按钮,点击Edit Configurations...,如下图所示:

点击左侧的Hvigor,随便选择一个,右侧的Node interpreter中就是IDE自带的node环境:

MAC电脑使用

如果你的电脑是MAC,复制完之后,需要在后面加一个"/node",如下所示:

txt 复制代码
/Applications/DevEco-Studio.app/Contents/tools/node/bin/node

可以发现一样可以获取到node版本,只不过是全路径而已。

Windows电脑使用

如果你的电脑是Windows系统,复制出来需要双引号,才能正确执行命令,并且后缀加上"\node.exe",如下所示:

txt 复制代码
"F:\soft\harmonyIDE\devecostudio-windows-5.0.11.100\config\DevEco Studio\tools\node\node.exe"

执行命令的时候,直接复制上面的node路径即可,需要注意的是,选择Command Prompt这个选项。

当然了,无论是Windows还是Mac,如果没有node环境,还是希望你能进行全局的环境变量配置,方便命令的执行。

node脚本使用

使用就非常的简单了,大家只需要在底部的终端中,执行你想要运行的模块命令即可,比如,我想让home模块进行运行:

执行完命令之后,为了防止错误发生,需要进行同步和刷新项目,如下图所示:

然后选择home模块,点击运行即可:

如果设备上已经运行了同等包名的应用,需要卸载原有的,再进行安装,只需要点击控制台的蓝色即可:

以上执行完之后,如果你的模块,没有设置默认的启动Launch,需要手动配置一次,仅第一次配置,如果已经配置了,则会直接运行到设备上。

点击运行的模块,选择编辑配置:

找到Launch,选择Default Ability:

相关总结

node脚本的方式,需要手动的在终端执行命令,进行切换模块运行,相对于上篇的IDE插件,在效率上有所降低,不过熟练之后,问题不大,目前已经提供了两种方式,大家可以选择自己喜欢的方式。

本文标签:鸿蒙开发工具/DevEco Studio

相关推荐
00后程序员张8 分钟前
如何在不同 iOS 设备上测试和上架 uni-app 应用 实战全流程解析
android·ios·小程序·https·uni-app·iphone·webview
wjm0410061 小时前
ios面试八股文
ios·面试
米豆同学2 小时前
SufraceFlinger图像合成原理(3)-SurfaceFlinger中Layer的创建和销毁
android
米豆同学2 小时前
SufraceFlinger图像合成原理(2)-SurfaceFlinger与应用进程间的通信
android
用户2018792831672 小时前
uses-library:系统应用报NoClassDefFoundError问题
android
叽哥2 小时前
Kotlin学习第 4 课:Kotlin 函数:从基础定义到高阶应用
android·java·kotlin
mg6682 小时前
安卓玩机工具----安卓“搞机工具箱”最新版 控制手机的玩机工具
android·智能手机
诺诺Okami2 小时前
Android Framework- Activity启动2
android
米豆同学2 小时前
SystemUI plugin 开发
android
用户7227868123442 小时前
HarmonyOS实现快递APP自动识别地址
harmonyos