我一直试图在mac上安装p5串行服务器2天,但没有结果。我已经尝试了所有我能想到的尝试在mac上下载p5串行化服务器。我使用了文档(https://github.com/p5-serial/p5.serialport)中建议的所有三种方法,它们是
npm安装
当我运行npm安装时,这失败了,并且我无法继续下一步。然后我试着
sudo npm install -g p5.serialserver和
npm install p5.serialserver它一直给我带来错误,需要3个参数,但提供了2个参数,如下所示:
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,然后是:
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我认为这是因为需要更新,一些所需的包已经更改,但我不确定是哪个包,或者如何解决这个问题。我试着降低我正在使用的节点的版本,但这不起作用。如有任何其他建议,请告知。
更新:我在https://npm.runkit.com/p5.serialserver上运行了p5串行化服务器。它根据模块中的内容给出了更多的错误。这是否意味着它不可能使用?此处链接的错误:https://runkit.com/embed/9rlymlps3vcx
发布于 2022-02-15 03:16:04
在一位教授派了资源来解释错误后,我终于明白了这一点。基本上,您需要下载到nodev12.20.2,以便使用p5串行(可能是因为过时的依赖关系)
我是通过在终端中运行以下命令来做到这一点的。您可以使用nvm运行不同版本的节点,所以如果您还没有使用nvm来安装节点,我建议您使用它来安装节点:
nvm install 12.20.2
nvm use 12.20.2
node -v确认终端正在运行节点v12.20.2
sudo npm install serialport --unsafe-perm -g
sudo npm install ws -g
sudo npm install p5.serialserver --unsafe-perm -g然后运行以下命令来启动服务器:
p5serial它应该启动服务器。希望这能帮到别人因为这让我快疯了。
https://stackoverflow.com/questions/71055596
复制相似问题