Web 前端项目如何和 Electron 项目共享代码?

查看 70|回复 8
作者:abcbuzhiming   
已有基于 Web 的客户端项目正在运行。是功能比较复杂的 UI 类型程序,而不是一般的那种偏展示的 web 页面。
现在老板要求必须打包一个客户端出来,说浏览器逼格不够,要 App 才好让他出去宣(骗)传(投资),使用体验和 web 完全相同,那只能用 Electron 了。
但是这个 UI 程序确实写的比较复杂,页面,布局,交互的代码都挺多的。当然它没有什么原生 api 负担,因为基本都是在和后台服务器交互,不需要依赖本地操作系统 API 。
我看了一下 Electron 的开发流程,我感觉这东西的脚手架和 Web 端还是有那么点不一样。我原本想的好事是一份代码,想打包成 web 端可以,想打包成 Electron 也可以。但是实际上似乎没法这么干。能查到的办法都是必须建立 Electron 的脚手架,然后把 web 那些的代码拷一份过来,然后再调整调整。
我现在的主要担心是,如果复制成两份代码,很可能后面迭代几个版本就走样了,毕竟这程序功能挺多挺杂的,web 端和 Electron 端程序的功能很直接就分裂了。并且很不好弥合。
有没有什么办法,能让它们共享代码呢?
renmu   
完全不用,你打包完,electron 加载一下 html 就可以了
abcbuzhiming
OP
  
@renmu 不太理解这是什么操作,electron 可以从本地加载打包后的 web 项目的静态资源吗?还是说你的意思是直接从远程服务器加载?把 electron 直接当浏览器用?
nieyujiang   
electron 单独抽一个工程出来,然后就在上面放个 webview 之类的,加载一下在线的页面.完事以后基本上不用改,反正所有的逻辑都是页面内部的.

renmu   
@abcbuzhiming 可以啊,如果这都不想做,那就直接加载线上页面,不需要额外适配
maichael   
虽然已经 archived ,https://github.com/nativefier/nativefier 应该能满足你的需求
不过也可以简单通过 mainWindow.loadURL 之类的方式来实现这个需求,Electron 本质上是个浏览器 + Node.JS runtime ,所以是可以加载 url 的。
hengcheng   
https://github.com/tw93/Pake
aaniao002   
chrome -app 模式怎么样? 打包一下 chrome 写个启动就行。
LongMaoz   
没有客户端 API 交互需求的话 直接加载远程 url 不就行了
您需要登录后才可以回帖 登录 | 立即注册

返回顶部