【发布时间】:2022-11-09 19:34:08
【问题描述】:
我正在尝试在我的 Next.js 项目中导入和使用sharp。我曾多次尝试卸载并重新安装sharp,但每次运行npm run dev,这就是我得到的错误。
./node_modules/detect-libc/lib/detect-libc.js:3:0
Module not found: Can't resolve 'child_process'
Import trace for requested module:
./node_modules/sharp/lib/utility.js
./node_modules/sharp/lib/index.js
./pages/index.js
https://nextjs.org/docs/messages/module-not-found
作为参考,这是导致错误的代码:
import sharp from "sharp";
我也试过这段代码,但没有成功:
const sharp = require('sharp');
除了sharp,我安装的所有其他依赖项都有效。
【问题讨论】:
-
您使用的是什么版本的节点和锐器?
-
你在客户端文件中导入了sharp吗?就像在
pages/*.js文件中一样? -
节点 v14.19.2,夏普“0.30.4”。我对使用 JS 相当陌生,但我认为这是因为我试图在我在客户端构建的函数中使用Sharp,它只能在服务器端使用。如果是这种情况,我应该在哪里定义我需要使用的功能?
-
@bogdanoff 是的,我认为这就是问题所在。我定义了一个函数来处理我从 api 调用中提取的图像。如果我无法在客户端执行此操作,我应该在哪里执行此操作?抱歉.. JS/网络开发新手
-
@cyrus,所以您想处理位于其他地方的图像,对吗?然后为此在您的后端编写一个 api。逻辑应该是获取该图像(使用 axios 或 node-fetch),它将返回一个缓冲区。将此缓冲区传递给
sharp并对其进行处理,它还将返回缓冲区,现在使用此缓冲区来响应您的客户端。注意:无论如何,您都不能在客户端使用sharp包。
标签: javascript node.js next.js npm-install sharp