netlify / create-react-app-lambda

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Getting Error with fresh clone: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined

jakehow opened this issue · comments

With a fresh clone of this repo I get an error message when running yarn start:lambda src/lambda and making a request to localhost:9000. Attaching my yarn.lock as well.
yarn.lock.txt

OS: MacOS 10.13.6
Yarn: 1.10.1
Node: v10.12.0

Error does not happen until I make a request.

➜  labs rm -rf create-react-app-lambda 
➜  labs git clone https://github.com/netlify/create-react-app-lambda.git
Cloning into 'create-react-app-lambda'...
remote: Enumerating objects: 69, done.
remote: Counting objects: 100% (69/69), done.
remote: Compressing objects: 100% (48/48), done.
remote: Total 118 (delta 32), reused 43 (delta 17), pack-reused 49
Receiving objects: 100% (118/118), 308.19 KiB | 1.10 MiB/s, done.
Resolving deltas: 100% (49/49), done.
➜  labs cd create-react-app-lambda 
➜  create-react-app-lambda git:(master) yarn
yarn install v1.10.1
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning " > babel-loader@8.0.4" has unmet peer dependency "@babel/core@^7.0.0".
warning " > babel-loader@8.0.4" has unmet peer dependency "webpack@>=2".
[4/4] 📃  Building fresh packages...
success Saved lockfile.
✨  Done in 18.28s.
➜  create-react-app-lambda git:(master) ✗ yarn start:lambda src/lambda
yarn run v1.10.1
$ netlify-lambda serve src/lambda src/lambda
netlify-lambda: Starting server
Lambda server is listening on 9000
Hash: 6f04e8584e1f186c9788
Version: webpack 4.20.2
Time: 1353ms
Built at: 10/23/2018 4:08:09 PM
   Asset      Size  Chunks             Chunk Names
hello.js  1.62 KiB       0  [emitted]  hello
Entrypoint hello = hello.js
[0] ./hello.js 1020 bytes {0} [built]
Request from ::1: GET /
Response with status 500 in 5 ms.
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
    at assertPath (path.js:39:11)
    at Object.join (path.js:1155:7)
    at /Users/jakehow/projects/labs/create-react-app-lambda/node_modules/netlify-lambda/lib/serve.js:51:23
    at Layer.handle [as handle_request] (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/layer.js:95:5)
    at next (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/route.js:137:13)
    at next (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/route.js:131:14)
    at next (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/route.js:131:14)
    at next (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/route.js:131:14)
    at next (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/route.js:131:14)
    at next (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/route.js:131:14)
    at next (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/route.js:131:14)
    at Route.dispatch (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/layer.js:95:5)
    at /Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/index.js:281:22
    at param (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/index.js:354:14)
    at param (/Users/jakehow/projects/labs/create-react-app-lambda/node_modules/express/lib/router/index.js:365:14)

@jakehow try adding the name of your lambda function to the URL: http://localhost:9000/hello.

yup thats gonna be it. thats what this error message means:

Request from ::1: GET /
Response with status 500 in 5 ms.
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined

every lambda function must have a path for the endpoint, which is determined by the js filename.

thanks for the report and thanks @elcontraption for the quick response