NodeJS 升级节点16和MacOS后,无法在上构建本机模块

xzlaal3s  于 2022-12-18  发布在  Node.js
关注(0)|答案(2)|浏览(147)

我已经升级到MacOS Monterey(12.3.1)和节点16。从那时起,由于@newrelic/native-metrics,我无法在一些节点模块上运行安装,并出现以下错误:

Error running install script for optional dependency: "/Users/zivl/github/data-science-client/serverless/ml-platform-services/node_modules/@newrelic/native-metrics: Command failed.
Exit code: 1
Command: node ./lib/pre-build.js install native_metrics

当挖掘日志时,我发现它正在使用node-gyppython,所以我想可能是由于升级,我需要重新安装它们-所以我这样做了。但重新安装node-gyp/python(包括切换多个python版本(3.7,3.9,3.10)-仍然没有帮助。
我检查了node-gyp日志,看到了以下内容:

node-pre-gyp http 404 https://github.com/hyj1991/v8-profiler-node8/releases/download/v6.3.0/profiler-v6.3.0-node-v93-darwin-x64.tar.gz

node-pre-gyp WARN Tried to download(404): https://github.com/hyj1991/v8-profiler-node8/releases/download/v6.3.0/profiler-v6.3.0-node-v93-darwin-x64.tar.gz

node-pre-gyp WARN Pre-built binaries not found for v8-profiler-node8@6.3.0 and node@16.14.2 (node-v93 ABI, unknown) (falling back to source compile with node-gyp)
...
Failed to execute native-metrics install: No pre-built artifacts to download for your OS/architecture.

v8-profiler-node8没有节点16的版本,我试着在网上查找,到目前为止没有找到任何解决方案:(

sf6xfgos

sf6xfgos1#

最终,帮助我解决问题的方法是执行以下操作之一:

  • 手动安装一个node-gyp的全局包,您应该设置节点只运行该版本(在线阅读更多信息,我将尝试查找链接,但它在网上的任何地方)。
  • 切换到yarn 3pnpm,使用这些软件包管理器时,默认情况下不会像npm那样安装第三方脚本
  • 你可以一直使用npm install --ignore-scripts,但是到处都有这个标志太糟糕了...
  • 我有两个版本的python,python2python3(在pypenv全局中)

我希望这在某种程度上对你有帮助,其他的答案和解决方案非常受欢迎:)

qybjjes1

qybjjes12#

最好彻底消除这样的问题。
如果可能的话,容器化你的应用程序,例如使用Docker。除非你是专门为Mac OS编写应用程序。
https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
它将确保这种情况不再发生,可能比一次性解决方案更好:)

相关问题