【发布时间】:2020-11-04 16:50:31
【问题描述】:
我们在一个大型项目中使用 Apollo 服务器作为“接口”服务器——也就是说,它需要各种 API 并使用“模式拼接”将它们全部转换为单个 GraphQL API。
目前我们的启动脚本是
"start": "tsc && NODE_ENV=development node dist/index.js"
我们把它改成了
"start": "tsc && NODE_ENV=production node dist/index.js"
当我们推送到生产环境时,当客户端尝试访问接口服务器时,我们开始收到 400 范围内的错误(我没有确切的错误,因为我们恢复了推送)。
我们在 /index.ts 文件中所做的唯一其他更改是服务器本身的配置
introspection: true,
playground: !(process.env.NODE_ENV === 'production')
无论如何,如前所述,我们恢复到“开发”,一切正常。
将NODE_ENV 设置为production 在内部有什么作用?
我查看了 Apollo Server 文档,但找不到任何东西。
我在Deploying With Heroku 下找到了这个(我们没有使用 Heroku 进行部署,但这是我能找到的唯一参考)
要启用 Apollo Server 的生产模式,您需要设置 NODE_ENV 变量到生产环境。
但是,“生产模式”究竟是什么?我很可能错过了解释这一点的明显文档。
【问题讨论】:
-
你有没有机会使用内省?因为根据文档,除了在 prod 模式下禁用的游乐场之外,另一件事是。
标签: node.js graphql apollo production apollo-server