Capacitor js 使用体验
前端现状
众所周知,当下前端现状就是“打包 Android、打包 iOS、打包 Electron”。前端已死,大家都往端上靠
今天谈谈最近工作中用到的,入坑两个月的前端框架 Capacitor js
Capacitor js
Capacitor js 是一个跨平台框架,可以打包基于前端的 Android
、iOS
、Electron
应用
这个框架的逻辑很简单,它可以通过 npx cap add android
等命令生成其他平台的项目模板,通过 npx cap sync
命令把打包好的前端代码移动到其他平台项目下。最后再用对应平台的 IDE
打包,比如 Android Studio
、Xcode
插件
插件的概念就是通讯工具。因为前端无法操作设备的很多功能,比如你想打开摄像头,就需要通过前端插件发送一个指令到平台端的插件,收到指令后执行对应的逻辑
官方提供的插件基本覆盖了设备常用功能,同时还有社区插件,再不济可以自己开发插件,官方也提供了很好的例子
起初插件是放在本地的,项目中引入走的 file:
协议,这导致新电脑拉取项目后必须先在每个插件目录下 install
、build
一遍才能在项目 install
后来公司搭建了 npm
私服解决了这个问题
npm 私服带来的问题
使用私服后,执行 electron
插件的 sync
命令时出现了问题,会提示找不到依赖包
翻看了插件源码之后发现,sync
命令会执行两步,一个是 copy
一个是 update
。在 update
执行过程中会拉取你安装的所有社区插件,并在 electron
文件夹下再次安装,安装使用的命令是 npm i
,所以会导致私服上的依赖拉不到
解决方法是给他的命令后加一个 --registry
指定以下源地址就可以了
总体感受
目前使用中还没遇到过什么大的问题,框架的工作流程简单易懂,基本上只需要写前端代码,然后无脑打包就好了
插件开发也贼简单,新插件不需要在代码中注册等操作,引入即用,非常的 nice