npm - TypeScript-importproblem i apollo-server-express, apollo-server och apollo-cache-control


Jag försöker uppdatera från "apollo-server: "^2.9.4" och apollo-server-express: "^2.9.4" till version 2.12.0 i Typescript. Under byggprocessen av appen får jag följande fel:

node_modules/apollo-server-express/node_modules/apollo-server-core/dist/plugin/index.d.ts:1:13

fel TS1005: '=' förväntas.

1 importera typ { ApolloServerPlugin } från 'apollo-server-plugin-base';

Jag har inte hittat lösningen på detta än, jag har raderat mappen node_modules och package-lock.json men det fungerar fortfarande inte.

Det skulle vara trevligt att få lite hjälp....

tsconfig.json


{
  "compilerOptions": {
    "target": "es5",
    "moduleResolution": "node",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "outDir": "./dist",
    "declaration": true
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules",
    "**/*.spec.ts",
    "**/*.test.ts"

  ]

}


package.json

"dependencies": {
    "@apollo/federation": "^0.10.2",
    "@types/bluebird": "^3.5.27",
    "@types/cookie-parser": "^1.4.2",
    "@types/jest": "^24.0.19",
    "@types/mysql": "^2.15.7",
    "@types/nanoid": "^2.0.0",
    "@types/node": "^14.10.1",
    "@types/umzug": "^2.2.2",
    "@types/validator": "^10.11.3",
    "apollo-cache-control": "^0.10.0",
    "apollo-cache-inmemory": "^1.6.6",
    "apollo-client": "^2.6.4",
    "apollo-datasource-rest": "^0.6.1",
    "apollo-link": "^1.2.12",
    "apollo-link-context": "^1.0.20",
    "apollo-link-http": "^1.5.17",
    "apollo-link-rest": "^0.7.3",
    "apollo-link-schema": "^1.2.3",
    "apollo-server": "^2.12.0",
    "apollo-server-express": "^2.12.0",
    "apollo-server-plugin-response-cache": "^0.3.1",
    "apollo-server-testing": "^2.9.0",
    "axios": "^0.19.2",
    "cookie-parser": "^1.4.4",
    "cron": "^1.7.2",
    "elastic-apm-node": "^3.3.0",
    "express": "^4.17.1",
    "express-graphql": "^0.9.0",
    "graphql": "^14.5.8",
    "graphql-import": "^0.7.1",
    "graphql-schema-linter": "^0.2.1",
    "jsonwebtoken": "^8.5.1",
    "jwk-to-pem": "^2.0.3",
    "kafka-node": "^4.1.3",
    "link": "^0.1.5",
    "log4js": "^5.0.0",
    "mysql2": "^1.7.0",
    "nanoid": "^3.1.7",
    "node": "^14.5.0",
    "node-cache": "^5.1.1",
    "node-fetch": "^2.6.0",
    "promise-retry": "^1.1.1",
    "rimraf": "^3.0.0",
    "save": "^2.4.0",
    "sequelize": "^5.19.5",
    "sequelize-cli": "^5.5.1",
    "soap": "^0.30.0",
    "ts-jest": "^24.1.0",
    "typescript": "^3.6.3",
    "umzug": "^2.2.0"
  },
  "devDependencies": {
    "@types/graphql": "^14.5.0",
    "graphql-tag": "^2.10.1",
    "graphql-tools": "^4.0.5",
    "jest": "^24.8.0",
    "jest-cli": "^24.8.0"
  },
  "jest": {
    "testEnvironment": "node",
    "testPathIgnorePatterns": [
      "/node_modules/",
      "/dist/"
    ],

Svar #1

Syntaxen import type som används i apollo-server-core stöds inte av den version av TypeScript som du använder (v3.6). Denna syntax blev tillgänglig från v3.8 och framåt. https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export

Uppdatera TypeScript och felet kommer att försvinna

Svar #2

Jag stötte också på samma typ av fel vid TypeScript-importer. Jag försökte olika värden i lib, modules och target i tsconfig.json-filen men inget fungerade. Jag ville aldrig ändra node_modules-filen, men i slutändan var jag tvungen (ledsen smiley). Ändringen jag gjorde i min index.d.ts-fil var
import type { DocumentNode } from 'graphql/language/ast';
till
import { DocumentNode } from 'graphql/language/ast';
också detta värde i lib i tsconfig.json hjälpte
"lib": ["es6", "dom", "esnext", "esnext.asynciterable"],