【问题标题】:What does setting Apollo Server NODE_ENV to 'production' mode actually do (internally)?将 Apollo Server NODE_ENV 设置为“生产”模式实际上(内部)做了什么?
【发布时间】: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


【解决方案1】:

你使用nodemon插件吗?并且nodemon config已经设置了ENV,如:"env": { "NODE_ENV": "development" }

其他,尝试使用cross-env设置NODE_ENV。

【讨论】:

    猜你喜欢
    • 2013-06-02
    • 2020-11-21
    • 2015-02-26
    • 2017-06-29
    • 2013-06-13
    • 2021-10-25
    • 2011-08-12
    • 1970-01-01
    • 2010-11-27
    相关资源
    最近更新 更多