I have been trying to install p5.serial server on a mac for 2 days to no avail. I have tried everything I can think of to try and download p5.serialserver on a mac. I used all three methods suggested in the documentation (https://github.com/p5-serial/p5.serialport) which were
clone the repository and run
npm install
This failed when I ran npm install and I was not able to proceed to the next step. Then I tried
sudo npm install -g p5.serialserver
and
npm install p5.serialserver
It keeps giving me errors that 3 arguments are required, but 2 were provided like below:
npm ERR! /path/path/path/node-gyp/17.4.0/include/node/v8-object.h:247:37: note: candidate function not viable: requires 3 arguments, but 2 were provided
npm ERR! V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
Then the following:
npm ERR! ^
npm ERR! 4 errors generated.
npm ERR! make: *** [Release/obj.target/bindings/src/serialport.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack at ChildProcess.onExit (/path/path/path/.nvm/versions/node/v17.4.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:520:28)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Darwin 21.1.0
npm ERR! gyp ERR! command "/path/path/path/.nvm/versions/node/v17.4.0/bin/node" "/path/path/path/.nvm/versions/node/v17.4.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /path/path/path/.nvm/versions/node/v17.4.0/lib/node_modules/p5.serialserver/node_modules/@serialport/bindings
npm ERR! gyp ERR! node -v v17.4.0
npm ERR! gyp ERR! node-gyp -v v8.4.1
npm ERR! gyp ERR! not ok
I assume this is because there are updated required and some of the packages required have changed, but I'm not sure which packages or how to resolve this. I tried downgrading the version of node I was using, but that did not work. If anyone has any more suggestions please inform.
Update: I ran p5.serialserver at https://npm.runkit.com/p5.serialserver. It gave more errors based on what is in the module. Does that mean that it is not possible to use? Errors linked here: https://runkit.com/embed/9rlymlps3vcx
I have finally figured this out after a professor sent resources to explain the error. Basically, you need to download to nodev12.20.2 in order to use p5 serial (probably because of outdated dependencies)
I did this by running the following in the terminal. You can use nvm to run different versions of node, so I suggest using it to install node if you didn't already:
nvm install 12.20.2
nvm use 12.20.2
node -v
Confirm that the terminal is running node v12.20.2
sudo npm install serialport --unsafe-perm -g
sudo npm install ws -g
sudo npm install p5.serialserver --unsafe-perm -g
Then just run the following to start the server:
p5serial
And it should start the server. Hope this helps someone else because this was driving me crazy.