错误:在生产环境中启动ApolloServer for Express时找不到模块/ ApolloServer / protobufjs /最小值

问题描述

我正在使用TypeScript创建ApolloExpressServer。使用

在开发模式下运行时,代码运行良好
ts-node -r tsconfig-paths/register ./src --env=development

但是在我使用tsc --build tsconfig.prod.json构建项目之后,它构建成功,但是当我尝试使用node -r module-alias/register ./dist启动服务器时失败了

输出一个错误

Error: Cannot find module '/dist/ApolloServer/protobufjs/minimal'
Require stack:
- /node_modules/apollo-engine-reporting-protobuf/dist/protobuf.js
- /node_modules/apollo-engine-reporting-protobuf/dist/index.js
- /node_modules/apollo-engine-reporting/dist/agent.js
- /node_modules/apollo-server-core/dist/ApolloServer.js
- /node_modules/apollo-server-core/dist/index.js
- /node_modules/apollo-server-express/dist/index.js

我当前正在使用

  • "apollo-server-express": "^2.17.0"
  • "typescript": "^3.9.3"

到复制存储库的链接 https://github.com/Oluwatemilorun/typescript-server

解决方法

我发现了问题。这是由于我的package.json中的moduleAlias而发生的。 我创建了一个模块别名,如

{
    "name": "apollo-express-server","version": "0.0.0","_moduleAliases": {
        "@middlewares": "dist/middlewares","@validators": "dist/validators","@models": "dist/models","@shared": "dist/shared","@config": "dist/config","@server": "dist/Server","@apollo": "dist/ApolloServer"
    },}

删除行“ @apollo”:“ dist / ApolloServer”解决了该问题。 显然,它覆盖了/ node_modules / @ apollo / *并将其指向dist / ApolloServer