首页 > 解决方案 > Netlify Lambda GraphQL importModuleError

问题描述

我已经尝试了一段时间来弄清楚为什么这个构建在服务这个 GraphQL 端点时一直失败。

这是我尝试访问 GraphQL 端点的 Netlify Lambda 函数时遇到的错误。 https://grumble2.netlify.app/.netlify/functions/graphql

我不确定,但似乎 Netlify Lambda/Functions 正在努力为服务器上的端点提供服务,在这个阶段我不再确定为什么。是 babel 相关的,是 webpack 配置还是我错过的 Netlify Lambda 配置?

{
   "errorType":"Runtime.ImportModuleError",
   "errorMessage":"Error: Cannot find module 'apollo-server-lambda'\nRequire stack:\n- /var/task/bundle/serve.js\n- /var/task/graphql.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js",
   "trace":[
      "Runtime.ImportModuleError: Error: Cannot find module 'apollo-server-lambda'",
      "Require stack:",
      "- /var/task/bundle/serve.js",
      "- /var/task/graphql.js",
      "- /var/runtime/UserFunction.js",
      "- /var/runtime/index.js",
      "    at _loadUserApp (/var/runtime/UserFunction.js:100:13)",
      "    at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)",
      "    at Object.<anonymous> (/var/runtime/index.js:43:30)",
      "    at Module._compile (internal/modules/cjs/loader.js:1156:30)",
      "    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)",
      "    at Module.load (internal/modules/cjs/loader.js:1000:32)",
      "    at Function.Module._load (internal/modules/cjs/loader.js:899:14)",
      "    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)",
      "    at internal/main/run_main_module.js:18:47"
   ]
}

我在根目录中有我的函数文件夹

/functions
|-/bundle (graphql files from src)
|-package.json
|-graphql.js

我的 Netlify.toml 文件

[build]
command = "npm run build && npm run bundle && npm run build:lambda"
base = ""
functions = "functions"
[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200

我的根package.json脚本

  "scripts": {
    "server": "node --experimental-modules ./src/graphql/index.js",
    "start": "HTTPS=true webpack-dev-server --mode development --open --hot",
    "build": "webpack",
    "bundle": "cpx \"src/graphql/**/*\" \"functions/bundle\"",
    "test": "react-scripts test",
    "jest": "jest",
    "jest:watch": "jest --watch",
    "eject": "react-scripts eject",
    "storybook": "start-storybook -p 9001 -c .storybook",
    "precommit": "lint-staged",
    "eslint:global": "eslint src -c src/.eslintrc.js --ext .js,.jsx,.tsx,.ts",
    "eslint:global:fix": "eslint --fix src -c src/.eslintrc.js --ext .js,.jsx,.tsx,.ts",
    "start:lambda": "netlify-lambda serve src/graphql",
    "build:lambda": "netlify-lambda build src/graphql --config webpack.config.js"
  },

这是 repo 的功能分支以及其余文件 https://github.com/hghazni/Grumble/tree/netlify/lambda-graphql-server

如果有人知道为什么这很难服务,我将不胜感激!

标签: reactjswebpacklambdagraphqlnetlify

解决方案


推荐阅读