Midway Faas 是用于构建 Node.js 云函数的 Serverless 框架,可快速部署到阿里云和腾讯云(由于是阿里团队开发的框架,天然更适合阿里云)。
下面是我使用 Midway Faas 结合 Vue 开发时,踩到的坑 —— 缺少第三方模块。
通过 f package
打包后会发现,.serverless
加载的库只有 @midwayjs/serverless-fc-starter
,这时候如果你直接通过 f deploy
发布,调用接口,会报错。
报错的内容是缺少 @midwayjs/faas
,这个模块在我们开发环境是有的,打包的时候就丢了。
我的处理方法是进入 .serverless
目录,手动修改 package.json
,然后执行 npm i
(记得先把 package-lock.json
删掉)。
然后进入阿里云的控制台手动上传 .serverless
文件夹。
经过上面的处理,接口访问没问题了,但又会有下个问题 —— 访问根目录会报 500
错误(根目录应该是显示我们 vue build
出来的静态页面)。
经过排查,依然是缺少模块(汗 …),这次缺的是 @midwayjs/faas-middleware-static-file
,导致 index.ts
里面的 fmw:staticFile
加载不到。
重复第一个问题的解放方法,再次上传代码。
终于能看到页面了。