Compiling node-canvas with Node 20 fails with ‘v8::AccessorSignature’ has not been declared
/home/frank/.cache/node-gyp/20.19.0/include/node/v8-persistent-handle.h:498:14: warning: array subscript 0 is outside array bounds of ‘Nan::Persistent<v8::Object> [0]’ [-Warray-bounds] 498 | this->val_ = New(isolate, internal::ValueHelper::ValueAsSlot(*other)); | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/backend/ImageBackend.o CXX(target) Release/obj.target/canvas/src/backend/PdfBackend.o CXX(target) Release/obj.target/canvas/src/backend/SvgBackend.o CXX(target) Release/obj.target/canvas/src/bmp/BMPParser.o CXX(target) Release/obj.target/canvas/src/Backends.o CXX(target) Release/obj.target/canvas/src/Canvas.o In file included from ../src/Canvas.cc:21: ../src/Util.h: In function ‘void SetProtoAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::FunctionTemplate>)’: ../src/Util.h:25:21: error: ‘v8::AccessorSignature’ has not been declared 25 | v8::AccessorSignature::New(v8::Isolate::GetCurrent(), ctor) | ^~~~~~~~~~~~~~~~~ make: *** [canvas.target.mk:159: Release/obj.target/canvas/src/Canvas.o] Error 1 make: Leaving directory '/home/frank/dev/health-planner/server/node_modules/node-canvas/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.<anonymous> (/home/frank/.nvm/versions/node/v20.19.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:209:23) gyp ERR! System Linux 6.1.0-32-amd64 gyp ERR! command "/home/frank/.nvm/versions/node/v20.19.0/bin/node" "/home/frank/.nvm/versions/node/v20.19.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/frank/dev/health-planner/server/node_modules/node-canvas
Solution #1
Revert to Node 18
Solution #2
I'm̀ still looking for one
Recent Comments