无法读取 /node_modules/bindings/bindings.js 处未定义的属性'modules',并安装串行端口


1.  npm install -g node-gyp
2.  npm install serialport -S
3.  npm install electron-rebuild -D
4. ./node_modules/.bin/electron-rebuild.cmd

,然后,重建完成。

当我运行这个命令时:npm run electron:serve我这样进入浏览器电子检查有一个错误。

如果我输入bindings.js代码,我可以找到错误的地方:

nodePreGyp:
'node-v' +
process.versions.modules

这是我的包裹。json文件:

{"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"electron:build": "vue-cli-service electron:build",
"electron:serve": "vue-cli-service electron:serve",
"postinstall": "electron-builder install-app-deps",
"postuninstall": "electron-builder install-app-deps"
},
"main": "background.js",
"dependencies": {
"axios": "^0.21.0",
"bindings": "^1.5.0",
"core-js": "^3.6.5",
"echarts": "^5.0.0",
"element-resize-detector": "^1.2.1",
"element-ui": "^2.14.1",
"serialport": "^9.0.7",
"sockjs-client": "^1.5.0",
"vue": "^2.6.11",
"vue-i18n": "^8.22.4",
"vue-router": "^3.2.0",
"vuex": "^3.4.0",
"webstomp-client": "^1.2.6",
"ws": "^7.4.3"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/eslint-config-prettier": "^6.0.0",
"babel-eslint": "^10.1.0",
"electron": "^7.1.9",
"electron-rebuild": "^2.3.5",
"electron-builder": "^20.19.2",
"electron-devtools-installer": "^3.1.0",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.1.3",
"eslint-plugin-vue": "^6.2.2",
"node-sass": "^4.12.0",
"prettier": "^1.19.1",
"sass-loader": "^8.0.2",
"svg-sprite-loader": "^5.2.1",
"vue-cli-plugin-electron-builder": "~2.0.0-rc.5",
"vue-template-compiler": "^2.6.11"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended",
"@vue/prettier"
],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
],
"__npminstall_done": false
}

你能告诉我问题在哪里或帮助我更多地了解如何解决这个问题吗?

如果您使用电子与VueJS工作,请参阅https://github.com/SimulatedGREG/electron-vue已经构建了所有的代码,也很有帮助

第一次面对同样的问题使用电子实现现有的VueJS项目串行端口包

输入图片描述

<template>
<div id="wrapper">
<h2>Hello world</h2>
<button @click="listMyPorts">Show Ports</button>
<pre v-if="msg.length">{{msg}}</pre>
</div>
</template>
<script>
const serialport = require('serialport')
export default {
name: 'landing-page',
data: () => ({
msg: []
}),
methods: {
async  listSerialPorts () {
await serialport.list().then((ports, err) => {
if (err) {
this.msg.push(err.message)
return
} else {
this.msg.push('')
}
console.log('ports', ports)
this.msg.push(ports)
if (ports.length === 0) {
this.msg.push('No ports discovered')
}
})
},
listMyPorts () {
let vm = this
setTimeout(function listPorts () {
vm.listSerialPorts()
setTimeout(listPorts, 2000)
}, 2000)
}
}
}
</script>
<style scoped>
</style>

最新更新