ubuntu云服务器安装nodejs图片处理工具sharp失败问题解决方法

问题来源

由于图片体积太大,首次加载页面速度过慢,于是想对图片进行压缩(这里对图片进行处理是在后台进行的),
后面找到了两款款插件,我的项目使用第二款:
1.gm
2.sharp
开始项目是运行在window环境下的,没有出现任何问题,但我部署到ubuntu云服务器,并使用npm i初始化项目时报出以下错误:

ubuntu云服务器安装nodejs图片处理工具sharp失败问题解决方法_第1张图片
bf31cb9bfcf08e46c6c57ec246cc0b4.png

报错原因

npm install 相关的文件系统权限问题

解决方法

只需在项目运行以下命令,即可解决问题。
npm install --unsafe-perm

npm install --unsafe-perm的参数--unsafe-perm有什么作用,在网上查了一下

是怎么说的,npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。这样的话如果你脚本里有一些需要权限的操作,比如写文件(尤其是写 /root/.node-gyp),就会崩掉了。

为了避免这种情况,要么按照 npm 的规矩来,专门建一个用于运行 npm 的高权限用户;要么加 --unsafe-perm 参数,这样就不会切换到 nobody 上,运行时是哪个用户就是哪个用户,即使是 root。

我的解决方案来自https://github.com/lovell/sharp/issues/1627,这篇文章只是对自己的问题进行一个总结。

你可能感兴趣的:(ubuntu云服务器安装nodejs图片处理工具sharp失败问题解决方法)