Electron初识之路

1.名词解释:

nodejs:nodejs相当于 jvm, vs等, 它是一个运行平台, 只不过它运行的是javascript语言而已,就像vs可以解释、编译、运行c++代码一样

electron:是一个能使用传统前端技术(Nodejs, Javascript, HTML, CSS)开发一个跨平台桌面应用的框架。这里所说的桌面应用指的是在Windows、OSX及Linux系统上运行的程序。可以把它理解为一个本地的、类似浏览器的壳子,用以展示js、html、css描述的界面

初识 electron: https://blog.csdn.net/wang839305939/article/details/80741100

2.环境搭建

安装vscode
https://blog.csdn.net/HelloZEX/article/details/84029810
linux版本下载地址:
https://code.visualstudio.com/Download(deb包下载)
https://www.cnblogs.com/longyuan-z/p/7739864.html(deb包安装方法)

安装nodejs(注意版本)
https://blog.csdn.net/yt_php/article/details/90105880
https://blog.csdn.net/qq6759/article/details/97624102(Linux 下安装,注意不要用 apt-gep install nodejs 安装,否则环境变量修改后不起作用)
修改环境变量 “source /etc/profile” 在当前窗口起作用

ubuntu 下设置taobao镜像和win下不一致,如下是 linux 下 .npmrc 文件的内容
registry=https://registry.npm.taobao.org/
disturl=https://registry.npm.taobao.org
electron_mirror=https://npm.taobao.org/mirrors/electron/


安装electron

可以选择版本和平台:
npm install -g [email protected] -arch=ia32
npm install -g [email protected] -arch=x64
查看版本 electron -v electron -a
解决electron 通过npm下载慢的问题
https://www.jianshu.com/p/568db76a7b45

安装Python(编译c++扩展模块用到)
https://www.liaoxuefeng.com/wiki/897692888725344/897692941155968

3.NodeJS开发c++扩展模块

注意点:gyp文件的结构错误不会报错,要注意模块之间的关系

一个简单的示例
http://blog.csdn.net/chenhaifeng2016/article/details/74939493

写法介绍
https://hongchh.github.io/2018/NodeJS-Cpp-Addons%E5%9F%BA%E7%A1%80/

异步实现
https://hongchh.github.io/2018/NodeJS-Cpp-Addons%E4%B9%8BC-%E7%B1%BB%E5%AE%9E%E4%BE%8B%E5%8C%85%E8%A3%85%E4%B8%8E%E5%BC%82%E6%AD%A5%E6%93%8D%E4%BD%9C/

NodeJS - V8和JS的参数类型转换
https://blog.csdn.net/youth0532/article/details/74721247

Gyp 语法规则
https://www.cnblogs.com/nanvann/p/3913880.html

用node-gyp手动编译node的c++扩展模块
https://blog.csdn.net/github_36487770/article/details/81052936

使用NodeJSc++扩展模块调用DLL
https://blog.csdn.net/chenhaifeng2016/article/details/74989966

Electron如何调用NodeJS扩展模块
https://blog.csdn.net/chenhaifeng2016/article/details/74962611

Electron打包exe(windows)

https://segmentfault.com/a/1190000013924153?utm_source=tag-newest
https://segmentfault.com/a/1190000016695922?utm_source=tag-newest

4.其他学习连接:

electron官方指南,创建一个应用
https://github.com/electron/i18n/tree/master/content/zh-CN
nodejs入门
https://www.runoob.com/nodejs/nodejs-tutorial.html

nodejs中文网
http://nodejs.cn/api/addons.html

nodejs调用DLL(有两种方法)
https://www.jianshu.com/p/7d33a21e43d3
https://blog.csdn.net/chenhaifeng2016/article/details/74989966

Node.js v8.x 中文文档
https://www.nodeapp.cn/addons.html

node.js和JavaScript的关系
https://www.cnblogs.com/thinkam/p/8262743.html

5.问题及解决过程:

NODE_MOUDLE_VERSION不一致问题
https://blog.csdn.net/yurhzzu/article/details/99817323
https://www.cnblogs.com/mdorg/p/10417945.html(可以修改abi的值?,该方法自测不行,待继续了解)

ia32下:
npm install -g [email protected] -arch=ia32  abi版本为70
npm install -g [email protected] -arch=ia32  abi版本为64
node-gyp rebuild  -target=10.1.0 abi 版本为64(该方法在linux下的 /tmp 目录下生效,其他目录貌似不生效,待继续了解)

 

猜你喜欢

转载自www.cnblogs.com/liyubo/p/11590259.html