react+electron的开发环境搭建 | 青训营笔记

220 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第七天

react+electron的开发环境搭建

在上一篇文章里我提到了electron的一些小小的坑,但又没有讲我的开发过程,显得有点不真诚,于是在下了火车,回到学校后,我觉得写一篇文章,稍微表述一下一些开发过程,以免朋友们说我光说不练,只会嘴炮

开整!

为什么需要一个脚手架:

其实之前已经提到了,现在已有很多的品质不错的脚手架可供使用,那为什么还要自己搭呢?

哎,因为我不会ts,github上的那个用不了……

然后是小应用,字节的modernjs用起来有点浪费

于是,自己动手丰衣足食吧

搭建react:

这个自然是非常简单了

npx create-react-app your-project-name

啪的一下就好了

如果有问题检查一下网络,看一下报错信息,google或者百度一下应该就可以了

搭建electron:

安装:

npm install --save-dev electron

-dev是必需的,否则打包时会报错

为什么不用electron的脚手架呢

因为electron其实类似一个浏览器,装一个页面进去就好了,当然弊端也很明显,如果需要一个新的窗体,就需要重新配置了(这也算是electron的一个弊端吧)

配置main文件:

根据electron官网上的文档走就好,在loadURL处略作调整:http://localhost:3000,当然此处为生产环境的配置,在打包时再做其他配置处理

在package.json中也需要一定修改,添加main:main.js

启动应用:

react启动用npm run start

electron启动用electron .

然后就启动起来了,yes

然鹅,这很不优雅,一次开发启动两条命令,不爽栽

于是, 把这两个缝合起来就变得尤为重要了

怎么缝呢?npm必不可少:

第一位选手:concurrently:一次可以运行n条命令的狠角色,

然而,我们都知道electron需要在react加载后再加载才会有画面(load的是react的端口),要是react不加载,那就啥也没有,嗯,怎么办呢?

第二位选手:wait-on: 可以等等的npm包

然后,package.json中添加如下命令:

"dev": "concurrently "wait-on http://localhost:3000 && electron ." "npm start""

运行npm run dev,就可以得到一个比较好的开发体验了,然而,……发现了没有,浏览器还会打开一次,这就很烦了,那怎么办呢?ban掉浏览器就好啦,怎么ban呢?

哎,第三位选手:cross-env:可以跨端的好工具

npm start前添加cross-env BROWSER=none

再次启动,浏览器就不会出现了,完美

electron热更新:

react的脚手架自带webpack,热更新不必我们操心,然而electron却没有,那就意味着我们更改完main.js后无法热更新看到内容,这显然不够高效,那怎么办呢?

继续来个包:

nodemon:可以监听文件变化的一个包,用途非常广泛

添加

"hes": "nodemon --watch main.js --exec "electron ."",

来一个npm run hes

perfect!

当然,如果electron的menu等新文件创建后,也需要在hes命令里加入

总结:

经过一系列的折腾,可以配置出一个不错的electron开发环境,但是,引入了大量的npm包,同时也有些大才小用……

所以阿,还是考虑使用一些正经的脚手架吧(逃)

当然,后续打包还是需要自己去学一下electron-builder,然后配置一下的~为什么不写呢?因为我也不会……