package.json
文件.npm init
初始化項目目錄npm init // 或者 npm init -y
package.json
中編寫一個start
腳本{ "name": "helloelectron", "version": "1.0.0", "description": "", "main": "main.js", "scripts": { "start": "electron .", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }
npm install --save electron
package.json
中的main
腳本的進程是主進程。ipcMain
模塊接收渲染進程和向渲染進程發送消息。BrowserWindow
類開啓一個渲染進程並將這個實例運行在該進程中,當一個BrowserWindow
實例被銷燬後,相應的渲染進程也會被終止。ipcRenderer
模塊接收主進程和向發送主進程發送消息。// app能夠理解爲主進程 // BrowserWindow用於建立渲染進程 const {app, BrowserWindow} = require('electron') app.on('ready', function createWindow () { // 能夠建立多個渲染進程 let win1 = new BrowserWindow({ width: 1024, height: 768 }) let win2 = new BrowserWindow({ width: 1024, height: 768 }) // 渲染進程中的web頁面能夠加載本地文件 win1.loadFile('index.html') // 也能夠加載遠程頁面 win2.loadURL('http://www.baidu.com') // 記得在頁面被關閉後清除該變量,防止內存泄漏 win1.on('closed', function () { win1 = null }) win2.on('closed', () => { win2 = null }) }) // 頁面所有關閉後關閉主進程,這裏在不一樣平臺可能有不一樣的處理方式,這裏不深刻研究 app.on('window-all-closed', () => { app.quit() })
// index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>electron應用</title> </head> <body> <script> const fs = require('fs') fs.readFile('./demo.txt', function (err, data) { document.write(data) }) </script> </body> </html>
npm start
運行應用npm start
運行應用,那如何將應用分發給他人呢,下面簡單介紹Windows平臺的方式複製node_modules/electron/dist
目錄下的文件到任意文件夾yourapp
css
複製你的項目文件到yourapp/resources/app
下html
刪除yourapp/resources/default_app.asar
文件前端
運行yourapp/electron.exe
node
<script> const fs = require('fs') const path = require('path') fs.readFile(path.resolve(__dirname, 'demo.txt'), function (err, data) { document.write(data) }) </script>
【完】web
做者簡介:葉茂,蘆葦科技web前端開發工程師,表明做品:口紅挑戰網紅小遊戲、服務端渲染官網。擅長網站建設、公衆號開發、微信小程序開發、小遊戲、公衆號開發,專一於前端領域框架、交互設計、圖像繪製、數據分析等研究。 一塊兒並肩做戰: yemao@talkmoney.cn 訪問 www.talkmoney.cn 瞭解更多npm