volta
volta copied to clipboard
Could not find the sentinel NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 in the binary
I followed these steps to build a single executable application: https://nodejs.org/api/single-executable-applications.html but when I run
npx postject hello NODE_SEA_BLOB sea-prep.blob \
--sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 \
--macho-segment-name NODE_SEA
I get
Start injection of NODE_SEA_BLOB in hello...
Error: Could not find the sentinel NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 in the binary
Is the node in Volta identical to the official node? Does it support "Single executable applications"?
Volta’s Node is actually just pulled straight from the Node CDN. I do not know why it wouldn’t support this. However, the node actually invoked initially on the CLI is Volta’s “shim”, which intercepts that and redirects it to the correct version for you. It is possible that the postject tool is trying to work directly with the file it finds on the path, in which case that would break. (That would also affect other tools which use “shims”, which is several of them, not just Volta!)
You might be right as when I ran the command by using the node directly:
/opt/homebrew/lib/node_modules/npm/bin/npx postject hello NODE_SEA_BLOB sea-prep.blob \
--sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 \
--macho-segment-name NODE_SEA
node:internal/modules/cjs/loader:1147
throw err;
^
Error: Cannot find module '/Users/usernameee/volta/tools/image/node/21.3.0/bin/node_modules/npm/bin/npm-cli.js'
at Module._resolveFilename (node:internal/modules/cjs/loader:1144:15)
at Module._load (node:internal/modules/cjs/loader:985:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:135:12)
at node:internal/main/run_main_module:28:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v21.3.0
Could not determine Node.js install directory
A side question:
Volta’s Node is actually just pulled straight from the Node CDN
is this the same for Yarn as well? cause the latest Yarn is 1.22.21 but volta shows Yarn: v3.6.0-git.20230603.hash-3c8237cb (default)
The latest Yarn is not 1.x but 3.x. The difference is how it is distributed since Yarn v2 I believe!
I got the same issue and this is what I did for workaround:
cp $(volta which node) hello
npx postject hello NODE_SEA_BLOB sea-prep.blob \
--sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 \
--macho-segment-name NODE_SEA