devDependencies are not excluded all of a sudden...
QAnders opened this issue · comments
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)
The work around for now is to get the list of "real" dependencies is:
rm -r node_modules
npm install --omit=dev
ls node_modules
- Copy the list (it's looong) and fix all directory names as e.g.
- 'node_modules/@qvalia/**'
- add
- '!node_modules/**'
underpatterns:
inserverless.yml
(to exclude anything undernode_modules
) - Add the list of
omit=dev
modules toserverless.yml
under the excluded!node_modules
:
Now you can deploy... From having 110MB deployment ZIP this brought us down to 22MB...