Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Local emulator with shared dependencies from a yarn workspace (monorepo) #16

Open
R-Iqbal opened this issue May 6, 2022 · 1 comment

Comments

@R-Iqbal
Copy link

R-Iqbal commented May 6, 2022

We are having difficulty setting up a local environment, running with sam local start-api which uses a shared dependency from our yarn workspace.

Steps

  1. I have updated the make file to use yarn and replaced any instance of prefix with cwd
  2. Added our local package, @claimsgate/core to the dependencies property in package.json

example.ts

  • ClaimsGatePermissions.Funnels.canEditPages.id is just a string literal value.
import "source-map-support/register";
import { APIGatewayProxyEvent, APIGatewayProxyResult } from "aws-lambda";
import { ClaimsGatePermissions } from "@claimsgate/core";
/**
 * A simple example includes a HTTP get method.
 */
export const exampleHandler = async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => {
  // All log statements are written to CloudWatch
  console.debug(ClaimsGatePermissions.Funnels.canEditPages.id);

  return {
    statusCode: 200,
    body: JSON.stringify({
      message: ClaimsGatePermissions.Funnels.canEditPages.id,
    }),
  };
};

The following error is thrown when invoking the function.

FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\Users\\Rayyan\\Desktop\\Work\\Media Advancements\\Projects\\claimsgate\\packages\\aws\\node_modules\\@claimsgate\\core\\node_modules\\@claimsgate\\core-types\\node_modules\\@firebase\\database-compat\\node_modules\\@firebase\\database\\dist\\node-esm\\src\\core\\AppCheckTokenProvider.d.ts'

Is there something we are missing here? Historically in other packages of ours, to use a local dependency from our monorepo, we have always been able to add it to package.json and just begin using its functionality. If there was an issue, it would only be during a deployment pipeline?

Any advice would be much appreciated!

@R-Iqbal
Copy link
Author

R-Iqbal commented May 6, 2022

It appears that just having the package @claimsgate/core added to the package.json will cause the issue we are experiencing. Even if the example.ts makes no references to the package.

I believe this is an issue with path resolution with yarn classic on Windows but it's hard to figure out...

Can you run the AWS SAM locally in a docker environment?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant