このステートメントを追加する
const port = new serialport('COM1',
{ autoOpen: true,
baudRate: 9600,
stopBits: 1},
((err) => {if (err){console.log('Error:', err)}
else {console.log('COM1 opened!')}})
)
Electron-serialport-quick-start ( https://github.com/serialport/electron-serialport-quick-start ) に接続すると、「npm run start」の失敗が発生します (「rm -rf node_modules」、「rm package-lock. json', 'npm i' コマンド シーケンス) は、推奨される 'postinstall' スクリプトが package.json に含まれている場合は次のようになります。
Error: TypeError: Third argument must be a function
at internal/util.js:297:30
at new Promise (<anonymous>)
at open (internal/util.js:296:12)
at WindowsBinding.open (G:\CodeDev\quickStartSerialPort\node_modules\@serialport\bindings\lib\win32.js:56:22)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
オプションのコンストラクターパラメーターの有無にかかわらず、失敗は発生します。同様に、autoOpen が false に設定され、その後 port.open が呼び出された場合 (私の知る限り、port.open のコールバックは serialport ドキュメントのオプションとして識別されません)。
serialport の問題なのか、postinstall スクリプトの問題なのかは不明ですが、以下の package.json で postinstall スクリプトを省略した場合、エラーなくポートが開かれることを確認しています。
{
"name": "electron-serialport",
"version": "1.0.2",
"description": "A minimal Electron application with node serialport",
"main": "main.js",
"scripts": {
"start": "electron .",
"install": "electron-rebuild",
"postinstall": "electron-builder install-app-deps",
"build": "electron-builder -w nsis"
},
"repository": {
"type": "git",
"url": "git@github.com:serialport/electron-serialport.git"
},
"keywords": [
"Electron",
"quick",
"start",
"tutorial",
"demo"
],
"author": "GitHub",
"license": "CC0-1.0",
"devDependencies": {
"electron": "^11.2.0",
"electron-rebuild": "^2.3.4"
},
"dependencies": {
"serialport": "^9.0.7",
"tableify": "^0.0.3"
}
}
この問題は、Windows VS Code git bash 環境で発生しました。他のプラットフォームではテストされていません。