実行中のプロジェクトのフォルダー構造は次のとおりserverless-plugin-typescript
です。
<root>
- services
- common
- sample-service
sample-service
serverless.yml とすべてのエンドポイントを格納します。common
いくつかのエンティティ/サービス/ユーティリティ/などをホストします。からファイルをインポートしてからオフラインまたはパッケージ コマンドを実行common
するsample-service
と、出力フォルダー構造が次のように変更されます (これが必要です)。
<build root>
- endpoints
- ...files
これに(これは私が望んでいないことです):
<build root>
- common
- ...files
- sample-service
- endpoints
- ...files
API エンドポイントにアクセスしようとすると、ハンドラー ファイルが見つからないというエラーが表示されます (sample-service/endpoints
ルートendpoints
ディレクトリではなくディレクトリにあるため)。この場合、 param をserverless-offline
渡してフォルダーを指定することで、これを回避できます。しかし、これを AWS にデプロイすると、本来よりも深いフォルダであるため、エンドポイントが見つからないという同じ問題が発生します。--location
sample-service
Typescript プロジェクト参照を使用してみましたが、うまくいきませんでした。も使用してみserverless-webpack
ましたが、残念ながらかなり大きなメモリ リークが発生しているため、別のビルド システムを試すことにしました。
Typescript またはサーバーレス プラグインのいずれかの構成を変更して、探しているビルド構造 (最初のもの) を模倣する方法についての洞察はありますか? それとも、プロジェクト参照を正しい方法で実装しなかったのでしょうか?