netlify / functions

JavaScript and TypeScript utilities for Netlify Functions.
https://www.npmjs.com/package/@netlify/functions
MIT License
40 stars 18 forks source link

Cannot find module '@netlify/functions' #340

Open lukasborawski opened 2 years ago

lukasborawski commented 2 years ago

Hello. So I'm using scheduled functions and along with the dev env/mode it's working fine, I can serve it and invoke it. But as long I'm putting this to the server I have this error:

ERROR   Uncaught Exception  {"errorType":"Runtime.ImportModuleError","errorMessage":"Error: Cannot find module '@netlify/functions' ... 

The package is defined as a dependency in the package.json, and this is my function:

const { schedule } = require('@netlify/functions')

exports.handler = schedule('@hourly', async (event) => {
  const eventBody = JSON.parse(event.body)
  console.log(`Next function run at ${eventBody.next_run}.`)
  // function init
  return {
    statusCode: 200,
  }
})

Netlify config:

[build]
    functions = "functions"
     publish = "./"

[functions]
    directory = "functions/"
    external_node_modules = ["canvas", "jsdom"]

Functions are enabled on the Labs and Project page. What is wrong? Thanks for the help in advance.

eduardoboucas commented 2 years ago

Hi @lukasborawski! I can't find anything obviously wrong with the code you shared, so I wonder if you could share a repository that we could use to reproduce the problem?

lukasborawski commented 2 years ago

Hi @eduardoboucas So I've moved this function to the codebase, and even though I have some undefined errors.

[SyntaxError] - Unexpected end of JSON input

Locally it works fine. How can I debug this locally, and try it with the same environment as on the server? Or how to get some more detailed logs from the server?

ghost commented 2 years ago

Just realized after I typed my answer that this issue is kind of old, but sharing anyway in case someone else wanders in here as I did.

You can use the netlify CLI to mimic your production environment locally and have a better chance of reproducing your issue locally.