简体   繁体   中英

Node - Cross Plattform compilation - PKG

I am currently trying to compile a node app for macos using pkg:

https://github.com/zeit/pkg

First of all my setup:

macos 10.14.5 (Mojave)
node -v => v11.4.0
npm -v => 6.4.1
pkg -v => 4.4.0

My first try:

pkg index.js -t node11-mac-x64 --output dist/app-mac

Resulted in:

> pkg@4.4.0
> Error! No available node version satisfies 'node11'

Thats why i switched to:

pkg index.js -t node10-mac-x64 --output dist/app-mac

Result:

> pkg@4.4.0
> Warning
  Cannot include addon %1 into executable.
  The addon must be distributed with executable as %2.
  node_modules/sha3/build/Release/sha3.node
  path-to-executable/sha3.node
> Warning
  Cannot include addon %1 into executable.
  The addon must be distributed with executable as %2.
  node_modules/websocket/build/Release/bufferutil.node
  path-to-executable/bufferutil.node
> Warning
  Cannot include addon %1 into executable.
  The addon must be distributed with executable as %2.
  node_modules/websocket/build/Release/validation.node
  path-to-executable/validation.node
> Warning
  Failed to make bytecode node10-x64 for file /snapshot/app/node_modules/brotli/build/encode.js

But the executable has been generated, so i tried to run it:

./app-mac

Which resulted in the total disaster:

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

Error: File '/**/app/node_modules/linebreak/src/classes.trie' was not included into executable at compilation stage. Please recompile adding it as asset or script.
    at error_ENOENT (pkg/prelude/bootstrap.js:429:17)
    at readFileFromSnapshot (pkg/prelude/bootstrap.js:657:29)
    at Object.fs.readFileSync (pkg/prelude/bootstrap.js:700:18)
    at Object.<anonymous> (/snapshot/app/node_modules/linebreak/src/linebreaker.js:15:32)
    at Object.<anonymous> (/snapshot/app/node_modules/linebreak/src/linebreaker.js:161:4)
    at Module._compile (pkg/prelude/bootstrap.js:1261:22)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:710:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)

I already read every single issue on github related to pkg and tried various configurations, but none of them helped...

Can anybody please help? Trying to solve this issue for days now..

Thanks and greetings!

Is there no way i can package my application?

Update: In github they say, i have to include the .node files in the build process... but how do i do that?

I am too facing many problems using pkg . But I think you should change that node10-mac-x64 to node14-mac-x64 . That worked for me on Windows .

And the thing you were talking about getting the .node files, that's still a big problem. I tried to copy those with my .exe file but it didn't work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM