我们经常有需求要使用代码来合成图片,在图片上绘制文字、二维码等东西。
满足功能需求的包有很多,其中gm和sharp我们之前已经在Node图片编辑工具gm和sharp介绍过。
node-canvas模块是在node中实现canvas渲染的一种方式。可结合Echarts等应用于服务端生成图片流,进行图片处理等,如导出word或pdf时根据数据动态生成图片并嵌入文档中。
canvas的介绍可参考前后端交互与Node:canvas的使用方法
在centos系统下,需要先安装node-canvas的依赖:
sudo yum install gcc-c++ cairo-devel libjpeg-turbo-devel pango-devel giflib-devel
npm install canvas
参考Installation: Fedora and other RPM based distributions
可能会遇到类似
Can't install via npm: stack Error: EACCES: permission denied
的问题,可以尝试使用
chmod -R 755 folder
来将node_modules文件夹的权限给设置下。
还有改用户和组的命令可以尝试:
chown -R yourusername:yourusername ~/Dev/project
然后运行
sudo npm install -g --unsafe-perm
的命令,或者先运行此命令。
注意:
sudo npm install -g --unsafe-perm
命令会以root用户权限全局安装一个npm包。在执行命令时使用--unsafe-perm
标志将允许npm在root模式下以任何用户身份运行生命周期脚本。虽然这个命令可以解决一些与权限相关的问题,但它会带来一定的安全风险。特别是当安装的npm包中包含恶意代码时,该代码将在root用户权限下运行,有可能对你的系统造成严重损害。
使用该命令时需要注意以下几点:
确保信任源代码:在使用
--unsafe-perm
标志安装npm包时,确保你信任这个包的源代码和维护者。不要轻易信任和安装来源不明的包。限制全局安装:尽量避免全局安装npm包。除非你真的需要全局使用这个包(例如命令行工具),否则应该在项目目录中进行局部安装。
谨慎使用root权限:不要习惯性地使用root权限来解决问题。尽量在用户级别解决权限问题。例如,你可以使用
chown
和chmod
命令来调整目录和文件的权限。了解你在做什么:在执行任何命令之前,确保你了解这个命令的作用和潜在的风险。不要盲目地复制和粘贴命令。
总之,虽然sudo npm install -g --unsafe-perm
命令可以解决一些权限问题,但它不是一个理想的解决方案。在使用它之前,请确保你了解相关的安全风险,并采取适当的预防措施。
Comments