GYP

Electron as GUI of Python

无人久伴 提交于 2020-08-07 18:56:32
最近准备做一个离线升级工具,想起前几天刚接触的Electron 决定用它与python相结合来完成 开始准备环境搭建 几经折腾各种 zerorpc,zerormq各种报错 历经一天多的网上折腾终于找到一篇实践成功 先看整个流程搭建: start | V +------------+ | | start | +-------------> +-------------------+ | electron | sub process | | | | | python web server | | (basically | http | | | browser) | <-----------> | (business logic) | | | communication | | | | | (all html/css/js) | | | | | +------------+ +-------------------+ start | V +--------------------+ | | start | electron +-------------> +------------------+ | | sub process | | | (browser) | | python server | | | | | | (all html/css/js) | | (business

npm install sqlite3 - gyp error: unable to get local issuer certificate

孤街醉人 提交于 2020-06-29 04:52:10
问题 I am working on clean Windows 10 installation. When trying to run npm install sqlite3 from myproject path, getting the following error: gyp WARN install got an error, rolling back install gyp ERR! configure error gyp ERR! stack Error: unable to get local issuer certificate gyp ERR! stack at TLSSocket.onConnectSecure (_tls_wrap.js:1474:34) gyp ERR! stack at TLSSocket.emit (events.js:310:20) gyp ERR! stack at TLSSocket._finishInit (_tls_wrap.js:917:8) gyp ERR! stack at TLSWrap.ssl

Node.js进阶篇-koa、钩子函数、websocket、嵌入式开发

。_饼干妹妹 提交于 2020-05-09 06:35:17
代码地址如下:<br> http://www.demodashi.com/demo/12932.html 一、简介 koa是由Express原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的Web框架,Koa不定制路由,无冗余的中间件,开发设计方案趋向定制化,所以很适合对业务和技术有灵活要求的web场景。 二、应用 由于restful、加解密、跨域、参数解析、中间件等比较基础,且文档丰富,本小节将直接跳过,侧重于分享以下几点: 1、路由转发时,如何利用钩子函数机制做到controller层业务解耦 2、在socket通信中如何动态加载protobuf进行数据格式交换 3、如何基于websocket绑定相同的端口 4、如何利用c++编写node扩展库 2.1 业务解耦 中间件及钩子函数机制皆为业务解耦的有效实现方式,其中中间件模式因其实现方便而应用广泛, 如koa、express、sails中都曾大量用到, 而钩子函数机制在node生态中被大量用到ORM对数据库的操作,如mongoose、waterline,鲜有在controller层的广泛应用,本小节则尝试分享 一个简易的Hooks实现方式,并应用在koa框架中。 编写koa-hooks, 并提交到npm const hooks = require('hooks') class ApiHooks { constructor

electron 开发环境搭建

风流意气都作罢 提交于 2020-05-07 21:30:37
electron开发环境的搭建共包括两个部分:一、动态链接库(dll)编译部分;二、Native模块编译部分 tips:cnpm和npm的依赖可能不同,npm安装时可以通过任务管理器查看网速 ``` node rebuild(走的是node-gyp) npm i -g --production window-build-tools npm i ffi // 这一步可能不止这一个命令 npm i --save-dev node-gyp //这里的node-gyp一定要装在当前项目文件夹下,不能用全局的 npm i ref // 需要装好ffi后再搞 set PYTHON=C:\Users\hongbin.liang\.windows-build-tools\python27\python.exe // 设置python的环境变量(已经被window-build-tools自动装好了) node_modules\.bin\electron-rebuild //用electron再次编译C、C++等系统接口(ref编译的貌似不行,electron有自己的一套东西) ``` ``` npm i electron-packager -g // 用来最后的打包 其他相关:http://note.youdao.com/noteshare?id

Vue + Element-ui实现后台管理系统(2)---项目搭建 + ⾸⻚布局实现

泪湿孤枕 提交于 2020-05-06 10:59:30
项目搭建 + ⾸⻚布局实现 上篇对该项目做了个总述 : Vue + Element-ui实现后台管理系统(1) --- 总述 这篇主要讲解 项目搭建 + 后台⾸⻚布局实现 : 整体效果 后台首页按布局一共包含3个部分: 1、左侧栏部分 2、头部部分 3、内容部分。 说明 在整个后台管理系统中, 左侧栏和头部部分是应该一直在页面中展示的 ,所以对于每个页面这两个组件都应该存在,而 内容部分 才是通过router的跳转而跳到不同的组件。 下面先把整个项目搭建一下,然后再来讲解上面三个部分 一、项目搭建 1、环境搭建 #1、安装node (node -v查询版本号) node 安装 #2、安装淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org #3、安装 webpack,以全局的方式安装 npm install webpack -g #4、全局安装vue以及脚手架vue-cli npm install @vue/cli -g --unsafe-perm #5、创建vue项目 mall-manage-system是你起的项目名称 vue create mall-manage-system #6、运行当前项目 这个整个项目就搭建好了 npm run serve 在安装中可能会存在的问题 1、 node升级后

NPM Error:gyp: No Xcode or CLT version detected!

☆樱花仙子☆ 提交于 2020-05-02 16:48:07
问题 最近在macOS Catalina中使用npm安装模块,经常会出现如下错误: > node-gyp rebuild No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'. No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'. No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'. gyp: No Xcode or CLT version detected! gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1 gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16) gyp ERR! stack at ChildProcess.emit (events.js:210:5) gyp ERR! stack at Process.ChildProcess._handle.onexit

为什么C ++编译需要这么长时间?

北城余情 提交于 2020-02-27 04:12:29
与C#和Java相比,编译C ++文件需要很长时间。 编译C ++文件所需的时间比运行普通大小的Python脚本要长得多。 我目前正在使用VC ++,但它与任何编译器都是一样的。 为什么是这样? 我能想到的两个原因是加载头文件和运行预处理器,但这似乎不应该解释为什么它需要这么长时间。 #1楼 大多数答案都有点不清楚,提到C#总是运行较慢,因为在编译时只执行一次C ++执行的操作,这种性能成本也会受到运行时依赖性的影响(需要加载更多的东西才能运行)运行),更不用说C#程序将始终具有更高的内存占用,所有这些都导致性能与可用硬件的能力更密切相关。 对于解释或依赖于VM的其他语言也是如此。 #2楼 在较大的C ++项目中减少编译时间的一种简单方法是制作一个* .cpp包含文件,其中包含项目中的所有cpp文件并进行编译。 这会将标题爆炸问题减少一次。 这样做的好处是编译错误仍将引用正确的文件。 例如,假设你有a.cpp,b.cpp和c.cpp ..创建一个文件:everything.cpp: #include "a.cpp" #include "b.cpp" #include "c.cpp" 然后通过make everything.cpp编译项目 #3楼 构建C / C ++:真正发生了什么,为什么需要这么长时间 软件开发时间的相当大一部分不用于编写,运行,调试甚至设计代码

electron-vue跨平台桌面应用开发实战教程(七)——ffi调用C++(macOS平台)

老子叫甜甜 提交于 2020-02-26 09:33:19
electron功能很强大,但是有一些跟操作系统底层交互的功能,electron无法实现,这个时候我们就可以调用原生来配合完成对应功能,本文主要讲解在macOS平台下,调用C++的dylib文件 在开始之前我们要安装 1.node-gyp npm install node-gyp -g 使用ffi-napi调用dll(c++) 1. 安装ffi-napi 执行 npm install ffi-napi --save 2. 准备C++动态链接库libdemo.dylib文件 libdemo.dylib文件可以去gitee中获取,也可以自己编译 gcc -g -shared demo.cpp -o libdemo.dylib electron-vue-demos gitee 地址 3. 调用libdemo.dylib文件中的方法 这里dll是找的别的写好的,dylib是我自己写的 let cpplib if (process.platform === 'darwin') { // 在使用libdemo的时候最好自己编译下cpp,命令gcc -g -shared demo.cpp -o libdemo.dylib let libPath // 在这儿需要判断下是开发环境还是打包环境,在mac上这两个环境用的路径不一样 if (process.env.NODE_ENV ===

electron-vue跨平台桌面应用开发实战教程(七)——ffi调用C++(Windows平台)

女生的网名这么多〃 提交于 2020-02-26 00:54:16
electron功能很强大,但是有一些跟操作系统底层交互的功能,electron无法实现,这个时候我们就可以调用原生来配合完成对应功能,本文主要讲解在windows平台下,调用C++的dll文件 在开始之前我们要安装 1.node-gyp npm install node-gyp -g 2.windows-build-tools npm install windows-build-tools -g 这里需要确定的是python的版本必须是2.7 使用ffi-napi调用dll(c++) 1. 安装ffi-napi 执行 npm install ffi-napi --save 2. 准备C++动态链接库DLL文件 dll文件请去gitee中获取,这里没办法上传 electron-vue-demos 3. 调用dll文件中的方法 const ffi = require('ffi-napi') const path = require('path') const Dll = ffi.Library(path.resolve('resources/dll/MyDLL.dll'), { Add: ['float', ['float', 'float']], Hello: ['string', []], StrLength: ['int', ['string']] })

NodeJS npm install pg failed

为君一笑 提交于 2020-01-10 14:55:11
问题 Im trying to npm install pg on my ubuntu virtual machine and i got error: > pg@1.1.0 install /usr/local/lib/node_modules/core/node_modules/pg > node-gyp rebuild || (exit 0) gyp: binding.gyp not found (cwd: /usr/local/lib/node_modules/core/node_modules/pg) while trying to load binding.gyp gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1 gyp ERR! stack at ChildProcess.onCpExit (/usr/share/node-gyp/lib/configure.js:431:16) gyp ERR! stack at ChildProcess.EventEmitter