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

问题来源

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

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,这篇文章只是对自己的问题进行一个总结。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如以上DEMO截图所示效果,我们对于这种类似的功能肯定不算陌生,因为这可以说是实际开发中一类非常常见的功能需求了。...
    Machivellia阅读 2,219评论 1 13
  • 今天晚上有个孩子问我:“这么辛苦干嘛?” ,我回答到:值得,快乐!其实我想要的就是充实自己,快乐自己,过好每一天!...
    C梅花香自苦寒来阅读 220评论 0 1
  • 我生于一个普通的家庭,是一个独生子女,从小到大都是在村里长大的。因为成长环境的缘故,自己和别人相比,不仅眼界格局很...
    韦程豪阅读 172评论 0 0
  • 翻译程序:把一种语言翻译成另一种语言编译程序:把高级语言全部翻译成目标程序解释程序:翻译完一条高级语言就执行,完成...
    T_X_J阅读 208评论 0 0
  • 我的手已斑驳不堪 脚趾如春笋般撑破鞋面 就剩这一双眼还没怎么变 一半白一半黑 白的一半看尽黑夜 黑的一半色彩斑斓 ...
    那晚风轻阅读 693评论 0 0