在Nextjs中安装sharp时避免从GitHub获取:错误:找不到模块“sharp”

9

我正在尝试在公司系统上使用Next.js,但每当我运行“npm run build”时,都会出现以下错误信息:“Error: Cannot find module 'sharp'

我尝试安装sharp,但是我收到了以下错误:

info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.10.5/libvips-8.10.5-win32-x64.tar.br 
ERR! sharp getaddrinfo ENOTFOUND github.com 
info sharp Attempting to build from source via node-gyp but this may fail due to the above error
info sharp Please see https://sharp.pixelplumbing.com/install for required dependencies

这可能是因为由于安全原因,我的系统终端阻止了github URL。有没有一种方法可以在不从github获取的情况下安装sharp? 我可以在浏览器中访问GitHub,所以如果可以从那里下载文件,然后某种方式进行安装,我可以这样做。

操作系统: Windows 10

3个回答

31
更新: NextJS v10.0.8 修复了这个问题!如果遇到上述错误:请升级到10.0.8(或更高版本)。

引入 NextJS 10.0.5 版本所需的 sharp 依赖项破坏了那些依赖底层libvips的构建,而各种Linux发行版中并没有该依赖项。他们正在努力使其成为可选依赖项。相关的 PR 在这里这里。相关问题在这里。这可能比尝试在您的计算机上安装或编译libvips更容易(我在我的Amazon EC2基于ARM的机器上根本无法让它工作)。同时,您可以降级到 NextJS 10.0.3。我认为他们很快就会解决它。


1
sharp 依赖已在 v10.0.8 中被移除。现在运行良好。谢谢! - Abhijeet Singh
建议暂时不要更新到10.0.8版本,因为next/image组件存在内存泄漏问题。 - Californium

8

我遇到了同样的错误。这是因为我使用的是苹果M1 Mac电脑。我通过安装Homebrew解决了此问题,然后使用Brew install vips安装了lipvips。接着,在我的项目中运行npm install sharp,最后运行npm run build,这样就可以正常工作了。希望对你有用!


你知道这个解决方案是否有适用于Windows的版本,可以在没有完全管理员权限的情况下运行吗?我现在在公司系统上。因此不能直接从终端获取GitHub URL中的任何内容,这正是sharp安装程序一直尝试做的,因此失败了。 - Abhijeet Singh
对不起,我不知道 :( - SergioGaitan
你救了我!!!非常感谢!我也有一台MacBook Air M1,这个错误让我疯狂了。 - Flavia Cohen

0

我在 Mac M1 上遇到了同样的问题。我将 Node 版本降级到 14,现在它可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接