张小白Electron for Windows安装手记

Electron是个基于JavaScript、HTML和CSS的跨平台的桌面应用程序的框架。

在Windows下安装Electron的过程如下:

首先确保node.js正常安装。

然后可以使用npm install electron -g 进行安装:

但是你会发现,在electron安装过程中,它会自动解析出一个install.js文件,并且执行这个文件(上图中 node install.js部分),而这个文件执行中会链接 13.250.177.223:443这个端口。而笔者这个端口一般是连不上的(类似github的网站就从来没好连过)。

所以,在这种情况下,需要修改windows系统中npm的配置:在 用户目录下有个.npmrc的文件 

使用VSCode编辑这个文件

增加以下内容:(镜像源可以用华为云的,也可以用马云的。。。。)

registry=https://mirrors.huaweicloud.com/repository/npm/
# registry=https://registry.npm.taobao.org    
sass_binary_site=https://mirrors.huaweicloud.com/node-sass/
# sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs
ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/

然后,根据前一张图的提示,先把需要连接github的core-js装了。

npm install core-js -g

最好再装个typescript:

npm install typescript -g

然后,为了看清楚electron的安装过程,使用 npm install --verbose electron -g

...

...

...

终于可以无故障的安装成功。

再用官方的例子(http://www.electronjs.org/docs/tutorial/quick-start )试一下吧:

使用vscode打开my-electron-app这个文件夹,分别创建 main.js,index.html

main.js

const { app, BrowserWindow } = require('electron')
const path = require('path')

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js')
    }
  })

  win.loadFile('index.html')
}

app.whenReady().then(() => {
  createWindow()

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  })
)

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello World!</title>
    <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body style="background: white;">
    <h1>Hello World!</h1>
    <p>
        We are using Node.js <span id="node-version"></span>,
        Chromium <span id="chrome-version"></span>,
        and Electron <span id="electron-version"></span>.
    </p>
</body>
</html>

并修改前面使用npm init生成好的package.json文件:

{
  "name": "my-electron-app",
  "version": "1.0.0",
  "description": "My Electron app",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "keywords": [],
  "author": "Zhang Hui",
  "license": "ISC"
}

在vscode的终端启动

npm start

你会发现官方例子中,main.js居然少了个括号。

贴上官方截图:

机智如你的张小白,补上这个括号。

再重新npm start

一个桌面程序就此产生了。

是不是很简单?(如果你会趟坑的话。。。)

如果大家有兴趣的话,应该也可以参考这个过程在 ubuntu 18.04上试验electron在Linux上的效果的。(我猜能行!)

(全文完,谢谢阅读)

(完)