簡體   English   中英

錯誤:使用帶有串行端口的節點 pkg 時,未找到平台的本機構建

[英]Error: No native build was found for platform when using node pkg with serialport

我正在使用 node pkg包來打包我的 node 應用程序並創建一個本機可執行文件。 但是由於某種原因,當我在我的應用程序中使用serialport npm 包時,它會編譯,但是當我嘗試運行它時,它會拋出這個錯誤(無論我為什么平台構建):

$ ./app

pkg/prelude/bootstrap.js:1876
      throw error;
      ^

Error: No native build was found for platform=linux arch=x64 runtime=node abi=83 uv=1 libc=glibc node=14.19.2
    loaded from: /snapshot/pkg/node_modules/@serialport/bindings-cpp

    at Function.path (/snapshot/pkg/node_modules/node-gyp-build/index.js:60:9)
    at load (/snapshot/pkg/node_modules/node-gyp-build/index.js:22:30)
    at Object.<anonymous> (/snapshot/pkg/node_modules/@serialport/bindings-cpp/dist/load-bindings.js:10:46)
    at Module._compile (pkg/prelude/bootstrap.js:1930:22)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at Module.require (pkg/prelude/bootstrap.js:1855:31)
    at require (internal/modules/cjs/helpers.js:101:18)

這是我的 package.json

{
  "name": "pkg",
  "version": "1.0.0",
  "dependencies": {
    "serialport": "^10.4.0"
  }
}

這是我的 app.js

const { SerialPort } = require('serialport')

const port = new SerialPort({
  path: '/dev/ttyUSB0',
  baudRate: 19200,
})

console.log('Serial port opened successfully!')

這就是我的構建方式:

$ pkg app.js --target=node14-linux-x64
> pkg@5.7.0

我也有這個問題,在package.json中添加 PKG 的配置,這里的重要部分是您必須從serialport添加綁定的assets ,其余的您可以配置它們以供您使用。

編輯:使用 package.json 中的配置,我使用pkg . --compress Brotli pkg . --compress Brotli

"pkg": {
  "scripts": "build/**/*.js",
  "assets": [
    "node_modules/@serialport/binding*/**/*"
  ],
  "targets": [
    "node18-macos-x64",
    "node18-win-x64"
  ],
  "outputPath": "dist"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM