This repository was archived by the owner on Jan 13, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
This repository was archived by the owner on Jan 13, 2024. It is now read-only.
pkg not properly packing the built .node into executable, how to compile into executable? #749
Copy link
Copy link
Closed
Description
I am using the following module installed in the project
126 var msgpack = require('msgpack');
When pkg with the following config in the package.json:
37 "bin": "server.js",
38 "pkg": {
39 "assets": [
40 "*html",
41 "libs/*",
42 "utils/*",
43 "docs/*",
44 "images/*",
45 "node_modules/**/*"
46 ]
47 },
There will be the following warning:
> Warning Cannot include addon %1 into executable.
The addon must be distributed with executable as %2.
/home/kcharl/tmp/pack-test/package/node_modules/msgpack/build/Release/msgpackBinding.node
path-to-executable/msgpackBinding.node
> Warning Cannot include addon %1 into executable.
The addon must be distributed with executable as %2.
/home/kcharl/tmp/pack-test/package/node_modules/msgpack/build/Release/obj.target/msgpackBinding.node
path-to-executable/msgpackBinding.node
I understood that putting the .node into path-to-executable/msgpackBinding.node will work around the problem, but without doing that, the following error will crash the pkg-ed executable:
kg/prelude/bootstrap.js:1185
throw error;
^
Error: Cannot find module '/snapshot/package/node_modules/msgpack/lib/../build/Release/msgpackBinding'
1) If you want to compile the package/file into executable, please pay attention to compilation warnings and specify a literal in 'require' call. 2) If you don't want to compile the package/file into executable and want to 'require' it from filesystem (likely plugin), specify an absolute path in 'require' call using process.cwd() or process.execPath.
at Function.Module._resolveFilename (module.js:546:15)
at Function.Module._resolveFilename (pkg/prelude/bootstrap.js:1287:46)
at Function.Module._load (module.js:473:25)
at Module.require (module.js:595:17)
at Module.require (pkg/prelude/bootstrap.js:1166:31)
at require (internal/module.js:11:18)
at Object.<anonymous> (/snapshot/package/node_modules/msgpack/lib/msgpack.js:6:14)
at Module._compile (pkg/prelude/bootstrap.js:1261:22)
at Object.Module._extensions..js (module.js:662:10)
at Module.load (module.js:564:32)
"1) If you want to compile the package/file into executable, please pay attention to compilation warnings and specify a literal in 'require' call. "
What does "specify a literal in 'require' call." mean? Does anyone know how to "specify a literal in 'require' call" in order to pkg the .node into the executable?
Thanks
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels