我在我的VPS服务器上更改了我的Next.js应用程序的路径,现在我的依赖项不能正确安装到Yarn。(我在纱线1上,不在纱线2上。)
Yarn在尝试为npm模块canvas构建本机代码时崩溃,原因是:node-pre-gyp: not found。
为什么会发生这种情况?
发布于 2021-11-03 04:13:42
原来,应用程序的新路径在其中一个文件夹名称中有一个冒号:。(该文件夹的命名带有国际标准化组织的时间戳,如2021-11-03T02:02:44,以表示此版本应用程序的构建时间。)
冒号是在大多数系统中查找可执行文件的特殊字符:PATH变量通常用冒号分隔。
我怀疑Yarn1有一个bug,它在没有转义任何冒号的情况下将文件夹名称插入到PATH中,这会导致PATH无法正确解析。这会导致系统在构建canvas等特殊本机代码依赖项所需的node-pre-gyp等可执行文件中查找两个错误的文件夹名称,而不是一个正确的文件夹名称。
要解决此问题,请停止在包含Node应用程序的文件夹名称中使用冒号,在这些应用程序中,您依赖于Yarn 1来编译本机代码。将文件夹重命名为其他名称。
https://stackoverflow.com/questions/69819597
复制相似问题