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

devDependencies are not excluded all of a sudden... #12379

Open
4 tasks done
QAnders opened this issue Feb 29, 2024 · 1 comment
Open
4 tasks done

devDependencies are not excluded all of a sudden... #12379

QAnders opened this issue Feb 29, 2024 · 1 comment

Comments

@QAnders
Copy link

QAnders commented Feb 29, 2024

Are you certain it's a bug?

  • Yes, it looks like a bug

Is the issue caused by a plugin?

  • It is not a plugin issue

Are you using the latest v3 release?

  • Yes, I'm using the latest v3 release

Is there an existing issue for this?

  • I have searched existing issues, it hasn't been reported yet

Issue description

I found the issue for devDependencies not being excluded for the parent directory issue, but we have our serverless.yml in the root, along with te node_modules.

We have had this working fine previously, and the deploy size of the Lambdas has been around 31 MB.

Now we hit 110 MB and the deploy fails as the unpackaged size exceeds 360 MB(!).

Extracting the ZIP I can see that all dependecises are there, e.g. serverless, aws-sdk, eslint etc.

What have I messed up?

Service configuration (serverless.yml) content

frameworkVersion: '3'

package:
  individually: true
  excludeDevDependencies: true
  patterns:
    - '!volume/**' # exclude any Localstack temporary files/directories
    - '!coverage/**'
    - '!db-data/**'
    - '!.serverless/**'
    - '!.vscode/**'
    - '!test/**'
    - '!aws/**'
    - '!dist/**'


### Command name and used flags

sls deploy -s test

### Command output

```shell
The verbose logging shows it is excluding dependencise:

stage: test
Packaging
Excluding development dependencies for function "migrator"
Excluding development dependencies for function "create-access-key"
Excluding development dependencies for function "integrationInternal"
Excluding development dependencies for function "integrationExternal"
Excluding development dependencies for function "internalRoutes"


### Environment information

```shell
Framework Core: 3.38.0 (local)
Plugin: 7.2.2
SDK: 4.5.1

node v18.14.2 (npm v9.5.0)
@QAnders
Copy link
Author

QAnders commented Mar 3, 2024

The work around for now is to get the list of "real" dependencies is:

  1. rm -r node_modules
  2. npm install --omit=dev
  3. ls node_modules
  4. Copy the list (it's looong) and fix all directory names as e.g. - 'node_modules/@qvalia/**'
  5. add - '!node_modules/**' under patterns: in serverless.yml (to exclude anything under node_modules)
  6. Add the list of omit=dev modules to serverless.yml under the excluded !node_modules:
    image

Now you can deploy... From having 110MB deployment ZIP this brought us down to 22MB...

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