みなさんは気づきましたか。
あら便利カレンダーの日付と、記事の投稿日付がずれていることを…

さて、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

たったこれだけ。
知りませんでした。

元記事はこちら

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