share facebook facebook twitter menu hatena pocket slack

2018.08.15 WED

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

高橋 慎一

WRITTEN BY 高橋 慎一

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

さて、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エラー

高橋 慎一

高橋 慎一

最強。敗北を知らない。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。