Node.js 节点serialport不适用于Electron
我的任务是构建一个HTML5桌面应用程序,它使用串行端口,因为我在COM端口的另一端有一个arduino 我安装了Node.js 节点serialport不适用于Electron,node.js,arduino,serial-port,node-gyp,electron,Node.js,Arduino,Serial Port,Node Gyp,Electron,我的任务是构建一个HTML5桌面应用程序,它使用串行端口,因为我在COM端口的另一端有一个arduino 我安装了electron预构建和serialport两个包(我在package.json中指定了它们)。 在我的主网页中,我包含了main.js,并且在那里我试图要求serialport包,但是我得到了以下错误: 未捕获错误:找不到模块 'D:\Projects\arduino\HTMLPresentation\node\u modules\serialport\build\serialpo
electron预构建
和serialport
两个包(我在package.json
中指定了它们)。
在我的主网页中,我包含了main.js
,并且在那里我试图要求serialport
包,但是我得到了以下错误:
未捕获错误:找不到模块
'D:\Projects\arduino\HTMLPresentation\node\u modules\serialport\build\serialport\v1.7.4\Release\node-v45-win32-x64\serialport.node'
我已经阅读了一些关于这个问题的QA主题(一些带有节点gyp
的abracadabras),但是注意对我来说是有效的:在Windows8.1和Ubuntu 15.04上。我不知道如何为electron采用serialport包。用法:此可执行文件根据electron项目使用的io.js版本重建本机io.js模块。这允许您在Electron应用程序中使用本机io.js模块,而无需与io.js的系统版本完全匹配
npm install --save-dev electron-rebuild
# Every time you run "npm install", run this
./node_modules/.bin/electron-rebuild
# On Windows if you have trouble, try:
.\node_modules\.bin\electron-rebuild.cmd
这就是你解决问题的方法 通过在具有管理员访问权限的powershell中运行,在计算机中安装windows生成工具 或者npm--将python添加到path='true'--调试安装--全局windows构建工具 set PYTHON帮助您检查其设置是否正确 这还不够,请在项目文件中全局安装 我们必须重建serialport才能使用electron。为此,我们需要>安装电子重建: 最后一步是再次在应用程序的root>目录中运行electron rebuild: 导入并在electron vue项目中使用
const sp=require('serialport')
导出默认值{
名称:'登录页',
方法:{},
创建(){
sp.list(功能(错误,端口){
如果(错误){
console.log(错误)
}否则{
console.log(端口)
}
})
}
}
我的环境:
Vue.js: 2.6.10
Electron: 2.0.18
Node: 8.9.3
Platform: linux
如果将Eletron与Vue.js一起使用,则需要重建serialport模块,执行以下操作:
npm install electron-rebuild --save-dev
在此之后,您可以添加package.json>部分“scripts”,另一行内容是:
"rebuild": "electron-rebuild -f -w serialport"
您可以使用terminal命令重建模块
npm run rebuild
现在应该导入serialport模块,并按预期工作。祝你好运 您不是第一个遇到本机模块问题的人。你只需要根据电子头来构建它!怎么用?我看到的所有手册都只适用于以前的版本。你看过吗?我以前看过,但这次你给我写了,我再试了一次。不,它不起作用。同样,它会产生错误。比如说,您是否正确设置了
节点路径?
./node_modules/.bin/electron-rebuild
<script>
const sp = require('serialport')
export default {
name: 'landing-page',
methods: {},
created () {
sp.list(function (error, ports) {
if (error) {
console.log(error)
} else {
console.log(ports)
}
})
}
}
</script>
Vue.js: 2.6.10
Electron: 2.0.18
Node: 8.9.3
Platform: linux
npm install electron-rebuild --save-dev
"rebuild": "electron-rebuild -f -w serialport"
npm run rebuild