dherault / dherault/serverless-offline
dot in module path breaks execution
- Dominant language
- JavaScript
- Stars
- 5.3k
- Forks
- 811
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 3
Description
## Bug Report
using latest serverless-offline (14.4.0)
using serverless 3.40.0
**Current Behavior**
using pnpm install to manage node_modules
with `virtualStoreDir=node_modules/pnpmstore`
running pnpm deploy to create the artifact defined in serverless.yml for the lambdas
deploy folder shows node_modules/.pnpm as virtual store directory due to hardcoding (see [here](https://github.com/pnpm/pnpm/blob/13526e0fef6bf7eb9d09017148e5222594918830/releasing/plugin-commands-deploy/src/deploy.ts#L181))
`serverless offline --httpPort 5000 --stage localhost --config ./serverless.yml --noPrependStageInUrl --localEnvironment`
errors with:
```
Server ready: http://localhost:5000 🚀
ANY /pipeline/healthcheck (λ: pipeline-api)
× Unhandled exception in handler 'pipeline-api'.
× Runtime.UserCodeSyntaxError: SyntaxError: Unexpected token '.'
at _loadUserApp (/home/lfo/lfo/portal/node_modules/pnpmstore/serverless-offline@14.4.0_serverless@3.40.0_encoding@0.1.13_/node_modules/serverless-offline/src/lambda/handler-runner/in-process-runner/aws-lambda-ric/UserFunction.js:239:13)
at async module.exports.load (/home/lfo/lfo/portal/node_modules/pnpmstore/serverless-offline@14.4.0_serverless@3.40.0_encoding@0.1.13_/node_modules/serverless-offline/src/lambda/handler-runner/in-process-runner/aws-lambda-ric/UserFunction.js:311:19)
at async InProcessRunner.run (file:///home/lfo/lfo/portal/node_modules/pnpmstore/serverless-offline@14.4.0_serverless@3.40.0_encoding@0.1.13_/node_modules/serverless-offline/src/lambda/handler-runner/in-process-runner/InProcessRunner.js:41:21)
at async MessagePort. (file:///home/lfo/lfo/portal/node_modules/pnpmstore/serverless-offline@14.4.0_serverless@3.40.0_encoding@0.1.13_/node_modules/serverless-offline/src/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js:24:14)
× SyntaxError: Unexpected token '.'
```
**Sample Code**
- file: serverless.yml
```
service: ${self:custom.service}
frameworkVersion: '3.40.0'
variablesResolutionMode: 20210326
configValidationMode: error
# the following comment will be substituted during AWS deployment to:
# # package:
# # artifact: ./lambda-api.zip
package:
artifact: ./lambda-api.zip
layers:
noOp:
name: ${self:custom.service}-${self:custom.stage}-noOp
compatibleRuntimes:
- ${self:custom.awsLambdaRuntime}
path: .tmp
nodeModules:
name: ${self:custom.service}-${self:custom.stage}-nodeModules
compatibleRuntimes:
- ${self:custom.awsLambdaRuntime}
package:
artifact: ./lambda-api-node-modules.zip
```
**Expected behavior/code**
dont error but handle the handler
**Environment**
- `serverless` version: see top
- `serverless-offline` see top
- `node.js` version: 20.19.0
- `OS`: node 20.19.0 docker image
**Possible Solution**
???
**Additional context/Screenshots**
Contributor guide
Assessment
This issue has not been assessed yet.