Edited at

TypeORM+ServerlessFrameworkでおのれwebpackなmysqlエラー

More than 1 year has passed since last update.

みなさんは気づきましたか。

あら便利カレンダーの日付と、記事の投稿日付がずれていることを...

さて、TypeORMネタです。


構成


  • ServerlessFramework

  • serverless-webpack

  • TypeORM

あたりを使ってTypeScriptなアプリケーションをAWS Lambda + API Gatewayな感じでデプロイしたいわけです。

これでデプロイするとMySQLドライバーがありません!くそしてねろ!みたいなことを言われます。

仕事なので寝てるわけにはいきません。


依存 of 依存をキャッチできない問題

依存物内のランタイムでロードされるような依存物はwebpackでロードされません。

今回のエラーはそれに起因します。

このあたりのコードです。

if (name) {

return require("mysql");
}

みたいなことがされてます。

こうなるとmysqlをwebpackingできなくてくそして寝る羽目になります。


解決策

これはserverless-webpackで強制的にincludeすることで解決できます。


serverless.yml

custom:

webpack:
includeModules:
forceInclude:
- mysql

たったこれだけ。

知りませんでした。