NodeJS:非法指令(核心转储)使用锐库后出错

Arm*_*ani 6 node.js sharp

sharp当我从包(即图像处理包)添加这段代码时:

\n
await sharp(req.file.path)\n    .resize(500)\n    .jpeg({ quality: 50 })\n    .toFile(path.resolve(req.file.destination, \xe2\x80\x9cresized\xe2\x80\x9d, filename));\n
Run Code Online (Sandbox Code Playgroud)\n

我收到此错误:

\n
Illegal instruction (core dumped)\n
Run Code Online (Sandbox Code Playgroud)\n

当我删除它时,一切都正常。我\xe2\x80\x99m很困惑。该代码有什么问题?

\n

Arm*_*ani 9

通过我与@Tomalak的交谈,似乎最新版本sharp与我的CPU不兼容:

\n
\n

你的代码没有任何问题。这是 Sharp 中的一个错误 - 显然它试图使用您的 CPU 不支持的 CPU 指令。尝试旧版本的 Sharp。\xe2\x80\x93 托马拉克

\n
\n

我尝试了几个旧版本。对我有用的最新版本是0.27.2. 您可以使用以下命令安装它:

\n
npm i sharp@0.27.2\n
Run Code Online (Sandbox Code Playgroud)\n

我还在他们的 GitHub 页面上打开了一个问题:\n https://github.com/lovell/sharp/issues/2723#issue-894046354

\n

我的环境(npx envinfo --binaries --system):

\n
\n系统:\n 操作系统:Linux 5.4 Linux Mint 20 (Ulyana)\n CPU:(2) x64 Pentium(R) 双核 CPU E5300 @ 2.60GHz\n 内存:172.51 MB / 3.84 GB\n 容器:是\ n 外壳:3.2.2 - /usr/bin/fish\n二进制文件:\n 节点:10.19.0 - /usr/bin/node\n npm:7.6.1 - /usr/local/bin/npm\n
\n