serverless: Serverless package does not include all modules when a package.json file is provided
This is a (Bug Report)
Description
When deploying multiple versions of a service or just versions of the function within the service, but sometimes some modules are not included in the package in presence of a package.json file
- What went wrong?
When using
sls deployorsls deploy -f functionNameorsls packagetheservice.zipdoest not include all my node_modules, when I checked the package I figured out that some modules were missing My tree:
lamba
dir
dir
index.js
package.json
serverless.yml
node_modules
My package.json file was something like this:
{
"name": "lambda",
"version": "1.0.0",
"description": "lambda",
"main": "index.js",
"dependencies": {
"handlebars": "^4.0.10",
"html-pdf": "^2.1.0",
"mathfinjs": "^1.0.2",
"moment": "^2.18.1",
"numeral": "^2.0.6",
"path": "^0.12.7",
"pdfkit": "^0.8.3",
"pg": "^6.4.0",
"request-promise": "^4.2.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "RAZ",
"license": "ISC"
}
- What did you expect should have happened?
That every time that I deploy a service/function the package be the same but request-promise and pg were missing
- What was the config you used?
service: service
frameworkVersion: ">=1.8.0 <2.0.0"
provider:
name: aws
runtime: nodejs6.10
region: us-west-2
versionFunctions: false
functions:
function:
handler: index.handler
description: description
memorySize: 1024
timeout: 30
role: arn-role
tags:
Department: IT
Name: name
Team: team
TeamMember: TeamMember
environment:
var: value
var: value
var: value
var: value
var: value
- What stacktrace or error message from your provider did you see?
{
"errorMessage": "Cannot find module 'request-promise'",
"errorType": "Error",
"stackTrace": [
"Module.require (module.js:497:17)",
"require (internal/module.js:20:19)",
"Object.<anonymous> (/var/task/index.js:14:23)",
"Module._compile (module.js:570:32)",
"Object.Module._extensions..js (module.js:579:10)",
"Module.load (module.js:487:32)",
"tryModuleLoad (module.js:446:12)",
"Function.Module._load (module.js:438:3)"
]
}
Unable to import module 'index': Error
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/var/task/index.js:14:23)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
Similar or dependent issues:
Additional Data
Even using include: file was useless
The solution for me was to rename/remove package.json file
- Serverless Framework Version you’re using: 1.16.1
- Operating System: macOS Sierra 10.12.5
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 5
- Comments: 22 (7 by maintainers)
Hey @xmissio thanks for opening! 👍
This could be related to https://github.com/serverless/serverless/pull/3889.
Could you try to re-deploy while opting out of the dev dependency exclusion functionality?
You can opt-out via:
I’m experiencing the same issue in version 1.26.0. Any one else?
I was seeing this issue as well on versions 1.26.1 and 1.27.2
I fixed it by deleting my
node_modulesdirectory and reinstallingYes I am experiencing this with 1.26.1
Still getting
{ "errorMessage": "Cannot find module 'babel-runtime/regenerator'", "errorType": "Error", "stackTrace": [ "Function.Module._load (module.js:417:25)", "Module.require (module.js:497:17)", "require (internal/module.js:20:19)", "Object.defineProperty.value (/var/task/validate_access_code.js:1:1473)", "r (/var/task/validate_access_code.js:1:220)", "Object.<anonymous> (/var/task/validate_access_code.js:1:1613)", "r (/var/task/validate_access_code.js:1:220)", "/var/task/validate_access_code.js:1:641", "Object.<anonymous> (/var/task/validate_access_code.js:1:650)" ] }I am using sls version 1.28.0 and still facing the issue. I have tried using
option also but error still persist.
I added those lines but the error persist
I downgraded to 1.16.0 but error persisted, I deleted node_module directory, then npm install inside my service directory finally I execute sls deploy and it’s working now I just comment this to help The new bug started when I :
added this lines to my serverless.yml
and rename my package-json.txt to
and execute
sls deploy