这里就不介绍electron的配置了,其实引入node服务很简单,直接在electron的主体中引入就可以了。
首先我们需要有一个node服务。
创建一个 index.js和router.js
index.js
javascript
const express = require("express");
const router = express.Router();
// 引入全局对象
var path = require("path");
const indexRouter = require("./router.js");
// 声明创建
let http = require("http");
let port = 3000;
// 建立网站服务器
var app = express();
// 引入路由
app.use(indexRouter);
app.set("port", port);
// 创建 HTTP 服务器并监听 port 端口的所有请求
var server = http.createServer(app);
server.listen(port);
console.log("启动成功:端口" + port);
router.js
javascript
// 1、导入express模块
const express = require("express");
// 2、创建路由对象
const router = express.Router();
// 3、挂载具体的路由
router.get("/test", (req, res) => {
res.send({
code: 200,
data: "访问成功!",
});
});
// 4、向外导出路由
module.exports = router;
然后启动 node index.js
访问成功!
electron主体引入
然后我们启动 electron,就会发现node服务启动成了!
这里因为electron没有引入jquery和axios, 这里就用浏览器访问了,如果是vue项目,可以使用代理访问
注意:打包的时候这里的接口就会发生跨域报错,需要在electron打包的时候配置webPreferences:{webSecurity:true}
打包运行
问题一:打包后报错缺少依赖
打包遇到的问题, 就是打包遇到缺少依赖什么的,类似下面问题的,都是打包的时候,electron没有把依赖的依赖给打包进去,所以就缺少好多依赖。
这里我用了一个笨办法解决的,就是把 express 的依赖粘贴过来,重新 cnpm i下载一下就行了,或者缺哪个下那个,如果各位大佬有更好的办法,欢迎指导。谢谢~
javascript
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.1",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"finalhandler": "1.2.0",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
"qs": "6.11.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.18.0",
"serve-static": "1.15.0",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2",
"ee-first": "1.1.1"
问题二: 关闭服务,删除历史包
关闭服务