简体   繁体   English

节点-跨平台编译-PKG

[英]Node - Cross Plattform compilation - PKG

I am currently trying to compile a node app for macos using pkg:我目前正在尝试使用 pkg 为 macos 编译一个节点应用程序:

https://github.com/zeit/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...我已经阅读了 github 上与pkg相关的每一个问题并尝试了各种配置,但没有一个有帮助......

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?更新:他们说在 github 中,我必须在构建过程中包含 .node 文件......但我该怎么做?

I am too facing many problems using pkg .我在使用pkg遇到了很多问题。 But I think you should change that node10-mac-x64 to node14-mac-x64 .但我认为您应该将该node10-mac-x64更改为node14-mac-x64 That worked for me on Windows .在 Windows 上对我有用

And the thing you were talking about getting the .node files, that's still a big problem.你所说的获取.node文件,这仍然是一个大问题。 I tried to copy those with my .exe file but it didn't work.我试图用我的.exe文件复制那些文件,但没有用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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