头图
这篇文章首发在zihu,但是只有我自己看得见,白忙活一场。遂放弃在那里发文了...

突然想学一下windows的开发,了解了一圈,决定玩玩Electron。
由于前端变化太快,本文所有的步骤都给出了官方链接,尽量使得版本升级后,也能通过链接找到最新的信息。

一. 由来

windows开发的第一步自然是配置windows开发环境,然后我就被震惊了。微软直接让我下载了一个虚拟机,打开就能用。这是真正的开箱即用啊!(https://developer.microsoft.com/zh-cn/windows/downloads/virtu...
我觉得各官网都该学习一下,直接让用户下虚拟机,真的不想搭环境啦!
之后我转头去学习svelte,开发环境这事就被搁置了。
如今回头再继续搭环境,发现windows虚拟机过期了😂,所以我才想着找个Ubuntu+Electron开发环境的虚拟机。在网上找了一圈,没发现有现成的,于是只能手搓了...

二. Step by Step【不需要蕃蔷】

2.1 创建 ubuntu 的虚拟机

用到的软件如下:
vmware player 免费版(https://www.vmware.com/products/workstation-player.html
ubuntu server 22.04.4 LTS(https://cn.ubuntu.com/download/server/step1
为了让虚拟机跑起来时占用资源少一些,我选择了server版,而非desktop版。
安装很简单,相关截图如下:
image.png

之后一路选择Done/Continue,按Enter就行。真正的安装大概10分钟,安装完成后,重启虚拟机。
image.png

注:虚拟机的网络默认使用了NAT模式,具体可以参考下面的“网络篇”。

2.2 配置 ubuntu terminal 【本步骤含2条命令】

为了让 terminal 稍微好用一点,稍稍配置一下。分别创建两个文件如下:
~/.inputrc:按上下方向键,匹配历史命令

"\e[A": history-search-backward
"\e[B": history-search-forward

~/.vimrc:大段代码拷贝时,不会乱缩进

set nosmartindent
set noautoindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set number
set hlsearch

2.3 安装 node 【本步骤含6条命令】

下面的步骤都是在没蕃蔷的情况下完成的,关于网络问题可以参考下面的“网络篇”。(github由于是间歇性被葑,有问题,多尝试)
根据官网提示来:https://nodejs.org/en/download/package-manager
image.png

按上面的步骤,安装完nvm后,直接运行 nvm install 20 会提示找不到nvm,需要:

source ~/.bashrc

nvm install 20 结束后,设置源,确保在国内能顺畅的使用:

npm config set registry https://registry.npmmirror.com

2.4 安装配置 electron 【本步骤含6条命令】

根据官网教程来:https://www.electronjs.org/zh/docs/latest/tutorial/tutorial-f...
总结下来是这样:

mkdir my-electron-app && cd my-electron-app
npm init  #【一路回车】
npm install electron --save-dev  #【耗时约5分钟】
vim index.js  #【写入:console.log('Hello from Electron !')】
vim package.json  #【在"scripts"下,加入:"start": "electron .",】
npm run start
  1. npm init 中生成的入口是 index.js,但是 electron 官网说是 main.js,应该是版本差异。这里采用 index.js
  2. 运行 npm run start 后显示失败,如下。原因是使用的 ubuntu server,没有安装X服务,缺少部分 libs
    首次运行electron失败

2.5 安装X服务 【本步骤含3条命令】

如前所述,我采用了 ubuntu server 版以减轻运行虚拟机带来的负担,副作用就是没有安装图形界面。因此这里用一条命令弥补之。

运行 startx,系统会提示如下安装:

sudo apt install xinit

image.png

安装过程持续大约15-30分钟,若中途失败退出,重试即可。(不知道为什么都是cn的网站,也失败了好几次)
安装完后,在虚拟机中直接运行 startx,即可打开图形界面:

startx

在图形界面中,重新运行 electron,可以看到 console 输出,证明运行正常:
image.png

2.6 显示 electron 窗口 【本步骤含3条命令】

2.4 只走完了 electron 教程的前半部分,显示了一行 log,下面完成教程的后半部分,分别编写 index.js 与 index.html。
index.html 内容如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'" />
    <meta http-equiv="X-Content-Security-Policy" content="default-src 'self'; script-src 'self'" />
    <title>Hello from Electron renderer!</title>
  </head>
  <body>
    <h1>Hello from Electron renderer!</h1>
  </body>
</html>

index.js 内容如下:

const { app, BrowserWindow } = require('electron')
const createWindow = () => {
  const win = new BrowserWindow({
    width: 800,
    height: 600
  })
  win.loadFile('index.html')
}
app.whenReady().then(() => {
  createWindow()
})

在虚拟机的x窗口中运行 electron,运行后弹出了图形界面,结果如下:
image.png

三. 网络篇

虚拟机默认装机采用的是 NAT 模式,也就是说虚拟机会使用宿主机的网络配置,其中最重要的是 DNS(涉及到访问 github)。请配置宿主机(你的电脑)的 DNS,不要使用宽带商的默认 DNS,推荐:
223.5.5.5 【阿里】
8.8.4.4 【谷歌(使用前先确认可ping通)】

四. 虚拟机

本文的初衷其实就是想提供一个搭好环境的虚拟机,既然已经走到了这一步,那自然会分享出来:
https://pan.baidu.com/s/1VZSgNjraAgFphIcPBiCafA?pwd=mp3i

下载解压后,用 vmware player 打开时记得选"复制虚拟机",vmware会自动重配网络:
image.png

ubuntu用户名:dev
ubuntu密码:123456

五. 结束

上述步骤搭好了环境并验证可用后,可以开始工作了。
在正式开始项目前,我会选一个合适的脚手架项目,帮助搭建项目的主体框架。毕竟对前端不是太熟悉。

下一篇见


码懂
6 声望0 粉丝