前端现状

众所周知,当下前端现状就是“打包 Android、打包 iOS、打包 Electron”。前端已死,大家都往端上靠

今天谈谈最近工作中用到的,入坑两个月的前端框架 Capacitor js

Capacitor js

Capacitor js 是一个跨平台框架,可以打包基于前端的 AndroidiOSElectron 应用

这个框架的逻辑很简单,它可以通过 npx cap add android 等命令生成其他平台的项目模板,通过 npx cap sync 命令把打包好的前端代码移动到其他平台项目下。最后再用对应平台的 IDE 打包,比如 Android StudioXcode

插件

插件的概念就是通讯工具。因为前端无法操作设备的很多功能,比如你想打开摄像头,就需要通过前端插件发送一个指令到平台端的插件,收到指令后执行对应的逻辑

官方提供的插件基本覆盖了设备常用功能,同时还有社区插件,再不济可以自己开发插件,官方也提供了很好的例子

起初插件是放在本地的,项目中引入走的 file: 协议,这导致新电脑拉取项目后必须先在每个插件目录下 installbuild 一遍才能在项目 install

后来公司搭建了 npm 私服解决了这个问题

npm 私服带来的问题

使用私服后,执行 electron 插件的 sync 命令时出现了问题,会提示找不到依赖包

翻看了插件源码之后发现,sync 命令会执行两步,一个是 copy 一个是 update。在 update 执行过程中会拉取你安装的所有社区插件,并在 electron 文件夹下再次安装,安装使用的命令是 npm i,所以会导致私服上的依赖拉不到

解决方法是给他的命令后加一个 --registry 指定以下源地址就可以了

总体感受

目前使用中还没遇到过什么大的问题,框架的工作流程简单易懂,基本上只需要写前端代码,然后无脑打包就好了

插件开发也贼简单,新插件不需要在代码中注册等操作,引入即用,非常的 nice