2

I have the following folder structure for a project running serverless-plugin-typescript:

<root>
  - services
    - common
    - sample-service

sample-service houses the serverless.yml and all endpoints. common hosts a few entities/services/utilities/etc. When I import a file from common into sample-service and then run the offline or package command, the output folder structure changes from this (which is what I want):

<build root>
  - endpoints
    - ...files

To this (which is what I don't want):

<build root>
  - common
    - ...files
  - sample-service
    - endpoints
      - ...files

If I try to hit the API endpoint, I get an error saying it can't find my handler file (since it is in the sample-service/endpoints directory instead of the root endpoints directory). I can work around this in the case of serverless-offline by passing the --location param and specifying the sample-service folder. But when I deploy this to AWS, I have the same issue of it not finding the endpoint since it is a folder deeper than it should be.

I have tried using Typescript project references, but have not had much luck. I have also tried using serverless-webpack, but unfortunately there is a pretty large memory leak in it which is why I have moved on to trying a different build system.

Does anyone have any insight into how I could change the configuration of either Typescript or the serverless plugin to mimic the build structure I am looking for (the first one)? Or maybe I didn't implement project references the right way?

Josh Dura
  • 37
  • 1
  • 4
  • Would you include your `tsconfig.json`? – Tyler Christian Jun 05 '20 at 19:46
  • Also, you may have seen this already https://forum.serverless.com/t/file-foo-ts-is-not-under-rootdir-rootdir-is-expected-to-contain-all-source-files/9669 but it looks like it might be impossible with prisim's `serverless-plugin-typescript` – Tyler Christian Jun 05 '20 at 20:01

0 Answers0