![](/img/trans.png)
[英]Error: Loading non-context-aware native module in renderer: @serialport\bindings\build\Release\bindings.node'
[英]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.