Electronでserialport使おうと思ったらハマったのでメモ

てきとうにいろいろ

久しぶりにElectroでserial接続したかったので、

npm i serialport

をして、ボーレートなどの情報を入れて動かしてみる。

が、動かない。。。

エラー内容

Error: No native build was found for platform=win32 arch=x64 runtime=electron abi=113 uv=1 libc=glibc node=18.12.1 electron=23.1.0 webpack=true

こんなのが出る。chatGPTに聞いてみたところ、「nodeやelectronのバージョンが違うんじゃね?」的なことを言われるので、バージョンを変えまくってみる、

が、動かない。。。。なにこれ。。

前に使ってた時はこんなこと無かったのに。

npm rebuild

ググってみると、「rebuildすれば動くよ!」的なことを書いている記事があったので、rebuildしてみる。

結果的に動かない。。

まじなにこれ。

解決方法

結論として、webpack.config.tsを変更すればよかった。

module.exports = {
  target: 'electron-renderer',
  serialport: 'commonjs serialport'  ← これを入れる
  resolve: {
    extensions: ['.js', '.jsx']
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env', '@babel/preset-react']
          }
        }
      }
    ]
  }
};

webpackの内容はプロジェクトによって異なってると思いますが、

serialport: 'commonjs serialport'

これを入れるだけでよい。

解決方法が分かれば大したこと無が、これを調べるのに半日もかかってしまった。。。

Follow me!

PAGE TOP
タイトルとURLをコピーしました