背景****
NuxtImg默认是使用ipx作为图片源,而ipx又是依赖sharp的node模块。sharp会在打包时,根据系统环境去安装需要的依赖包(如果没有),最终会被输出在打包后的output文件夹下的sharp中
由于我们的开发环境通常是在win/mac,生成出来的依赖包是不符合我们部署环境的Linux系统,因此会出现can’t find ‘sharp’的问题
解决方案****
目前我查阅了许多资料,都没有发现可以一劳永逸的解决方案。因此,我们只能手动到sharp的官方去下载需要的依赖。
ipx和sharp通常会随着@nuxt/image的安装而一起跟随安装,它可能出现的位置是node_moduels下,也可能是在@nuxt/image/node_moduels下,因为NuxtImg会优先读取最近的包,所以要注意,如果@nuxt/image/node_moduels内有sharp存在,请删除他,或者覆盖他。
如何找到对应的sharp包****
sharp直接看package.json的版本号就好,至于sharp-libevips(对应vendor文件夹下内的文件)我的方法是,正常去执行打包,然后通过查看vendor内的版本号,github.com/lovell/shar…
中去找