1、本地开发环境接入import OSS from 'ali-oss'进行文件上传一切正常,npm run build时报错,有一条关键信息“Note that you need plugins to import files that are not JavaScript”
好,这是因为ali-oss依赖需要require引入,不支持import。更换引入方式。在nuxt-config.ts中设置cdn引入aliyun-oss-sdk.js文件,发现上传前还需要后端服务请求ali的sts服务,因为无后端支持改用其他上传方式。打包成功!
2、部署到服务器,设置好端口,通过pm2启动后,发现不能访问提示“500 internal Privoxy Error”。经过各种排查发现时因为服务器防火墙未设置端口。
3、可以访问到项目,提示一个大大的500字样"500 This page is temporarily unavailable.",在pm2的log中发现vue依赖没有找到,心想这是打包后的文件怎么会找不到依赖。找到server文件夹中执行npm install报错安装失败,最后安装pnpm install 完成,项目可以正常访问。
4、发现中转接口报错,遂再次查看pm2日志,发现“_fetch is not a function”。再次排查发现是本地环境node是18,服务器是16,遂通过nvm升级服务器其的node版本,报错依旧,多方查资料都表示是node版本的问题!
5、最后尝试在服务器上删除server文件下的node_modules文件,重新pnpm install还未解决。对比pnpm版本也不统一????再次统一pnpm的版本为8.10.0后再次删除重新pnpm install 后问题解决可以正常发出请求!!!
走通一个流程也真是不容易!路漫漫啊