使用 Yarn 1 编译画布时出现“node-pre-gyp:未找到”
Posted
技术标签:
【中文标题】使用 Yarn 1 编译画布时出现“node-pre-gyp:未找到”【英文标题】:"node-pre-gyp: not found" when compiling canvas with Yarn 1 【发布时间】:2021-12-17 12:32:33 【问题描述】:我在我的 VPS 服务器上更改了 Next.js 应用程序的路径,现在我的依赖项无法使用 Yarn 正确安装。 (我使用的是 Yarn 1,而不是 Yarn 2。)
Yarn 在尝试为 npm 模块 canvas
构建本机代码时崩溃,说:node-pre-gyp: not found
。
为什么会这样?
【问题讨论】:
【参考方案1】:事实证明,应用程序的新路径在其中一个文件夹名称中有一个冒号 :
。 (该文件夹以 ISO 时间戳命名,例如 2021-11-03T02:02:44
,以表示此应用版本的构建时间。)
在大多数系统中,冒号是用于查找可执行文件的特殊字符:PATH
变量通常用冒号分隔。
我怀疑 Yarn 1 有一个错误,它将文件夹名称插入 PATH
而不转义任何冒号,这导致 PATH
解析不正确。这会导致系统查找两个不正确的文件夹名称,而不是一个正确的文件夹名称,以查找像 node-pre-gyp
这样的可执行文件,它需要构建像 canvas
这样的特殊本机代码依赖项。
要解决此问题,请停止在包含 Node 应用程序的文件夹名称中使用冒号,在这些应用程序中您依赖 Yarn 1 来编译本机代码。将文件夹重命名为其他名称。
【讨论】:
以上是关于使用 Yarn 1 编译画布时出现“node-pre-gyp:未找到”的主要内容,如果未能解决你的问题,请参考以下文章
在 YARN 集群上部署 pyspark 作业时出现 FileNotFoundException
使用 YARN 在集群模式下运行 spark 时出现 java.io.FileNotFoundException
Github 操作,使用 npm 或 yarn 安装 Github 包时出现 401 未授权