繁体   English   中英

Node.js:夏普package无法安装

[英]Node.js: Sharp package unable to install

我正在尝试安装 Sharp package 来压缩图像缓冲区。 现在,当我通过npm install sharp --save安装 package 时,并尝试使用这行代码:

const sharp = require('sharp');

我收到以下错误: https://textuploader.com/1gvep 这是提到的日志: https://textuploader.com/1gvez 在发布这个之前我做了一些研究。 这是我尝试过的:

  • 使用 --ignore-scripts=false 标志
  • 使用 --unsafe-perm 标志
  • 从 node_modules 中删除 sharp package 并再次运行npm install --ignore-scripts=false
  • 运行npm rebuild

但到目前为止,这些都无济于事。 现在有些人似乎通过降级到节点 10 来解决问题,但这对我来说不是一个选择,因为我需要将它与至少需要节点 12 的 Discord.js 一起使用。我想到的想法是编写图像到一个 tmp 文件夹,用另一个库压缩写入的图像并重新加载它,但在我看来这不是很优雅。 现在我的问题是:

  • 我还能尝试正确安装 Sharp 吗?
  • 是否有缩小图像缓冲区大小的替代方法?

编辑:正如亚历克斯所建议的,我尝试了 Jimp 并在开始时简单地减小了图像大小。 我会在这里分享我的代码,以防有人寻找替代方案。

let buffer = canvas.toBuffer('image/png'); //from node-canvas
Jimp.read(buffer)
.then(image => {
   image.resize(width>>1, height>>1).getBufferAsync(Jimp.MIME_PNG)
   .then(comprBuffer => {
      /* use the new buffer */
   });
})
.catch(err => { 
   console.log(err) 
});

我尝试安装sharp并且在以下版本上没有问题:

节点 v12.16.1 Npm v6.13.4

改用 Jimp 怎么样?

https://www.npmjs.com/package/jimp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM