1、安装electron的包,这里如果一直安装不了,可能是网络的原因,可以下载淘宝镜像:
npm install -g electron npm install cnpm -g --registry=http://registry.npm.taobao.org cnpm install electron -g以下安装命令cnpm和npm都可以
2、安装electron-prebuilt :
cnpm install -g electron-prebuilt3、安装 packager 发布工具:
cnpm install -g electron-packager4、安装electron-builder:
cnpm install -g electron-builder5、安装 aser 打包工具:
cnpm install -g asar6、进入项目目录,初始化项目(生成package.json,如果失败,可以自己新建空的package.json):
npm init生成了package.json,配置如下:
{
"name": "app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"electron": "^2.0.6"
}
}
7、在项目目录,建立js程序 index.js :
const {app, BrowserWindow} = require('electron')
const path = require('path')
const url = require('url')
// 保存窗口对象的全局引用, 如果不这样做, 当JavaScript对象被当做垃圾回收时,window窗口会自动关闭
let win
function createWindow () {
// 创建浏览器窗口.
win = new BrowserWindow({width: 800, height: 600,autoHideMenuBar :true})
win.setMenu(null);
// 加载项目的index.html文件.
win.loadURL(url.format({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
// 当窗口关闭时候的事件.
slashes: true
}))
// 打开开发工具.
//win.webContents.openDevTools()
win.on('closed', () => {
// 取消引用窗口对象, 如果你的应用程序支持多窗口,通常你会储存windows在数组中,这是删除相应元素的时候。
console.log("haha");
win = null
})
}
app.on('activate', () => {
console.log('activate')
if (win === null) {
createWindow()
} else {
win.show()
}
})
// 当Electron完成初始化并准备创建浏览器窗口时,将调用此方法
// 一些api只能在此事件发生后使用。
app.on('ready', createWindow)
// 当所有窗口关闭时退出。
app.on('window-all-closed', () => {
// 在macOS上,用得多的是应用程序和它们的菜单栏,用Cmd + Q退出。
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
// 在macOS上,当点击dock图标并且没有其他窗口打开时,通常会在应用程序中重新创建一个窗口。
if (win === null) {
createWindow()
}
})
8、在项目目录添加index.html 文件:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8"/>
<title>test</title>
</head>
<body>
Hello World!
<button id="button">点击这里</button>
<script>
console.log(window)
var button = document.getElementById('button');
button.onclick = function(){
alert("你好")
}
</script>
</body>
</html>
9、可以使用electron . 命令预览
electron .
npm run-script package10、执行打包命令:(可能需等待一会)
build --win --x64打包后会在项目目录生成dist文件夹,生成exe文件,点击安装就可以了

如果想要设置exe的显示图标,可以利用网上的在线图片格式转换工具,将图片转换成256*256像素的ICO图片。
如图所示目录,新建image文件夹

文件夹内放置ico图片

json配置ico的位置:
{
"name": "Play",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC","devDependencies": {
"electron": "^2.0.6"
},
"build":{
"appId": "com.gao.Play",
"copyright": "Yimi",
"productName": "Play",
"dmg":{
"window": {
"x":100,
"y":100,
"width": 500,
"height": 400
}
},
"win": {
"icon": "image/icon.ico"
}
}
}
执行build –win –x64命令后,就会生成有图标的执行应用。可以生成桌面快捷方式:

