Опция 'noEmit' не может быть указана с опцией 'incremental' - PullRequest
7 голосов
/ 06 марта 2020

Я разрабатываю следующее. js приложение. Он имеет следующие значения: tsconfig.js

{
  "compilerOptions": {
    "target": "ES2018",
    "module": "esnext",
    "lib": [
      "dom",
      "es2018",
      "es2019.array"
    ],
    "jsx": "preserve",
    "sourceMap": true,
    "skipLibCheck": true,
    "strict": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "allowJs": true,
    "forceConsistentCasingInFileNames": true,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "incremental": true
  },
  "exclude": [
    "server",
    "next.config.js"
  ],
  "include": [
    "lib/global.d.ts",
    "next-env.d.ts",
    "**/*.ts",
    "**/*.tsx",
    "**/*.js"
  ]
}

Он хорошо работает в режиме разработки, но при создании сборки отображается следующая ошибка:

ERROR in tsconfig.json
22:5 Option 'noEmit' cannot be specified with option 'incremental'.
    20 |     "resolveJsonModule": true,
    21 |     "isolatedModules": true,
  > 22 |     "noEmit": true,
       |     ^
    23 |     "incremental": true
    24 |   },
    25 |   "exclude": [

Далее. js автоматически внедряет 'noEmit: true' в tsconfig.json файл. Хотя мне действительно нужен инкрементальный режим для более быстрой сборки. Каким может быть решение этой проблемы?

1 Ответ

1 голос
/ 23 марта 2020

С Ошибка ввода # 33809 :

Не имеет смысла объединять incremental и noEmit вместе, поскольку noEmit мешает нам писать инкрементные метаданные. (Так что на самом деле ничего не является инкрементным).

Вы должны рассмотреть emitDeclarationOnly вместо noEmit, если вы на самом деле просто хотите инкрементную проверку.

В соответствии с этим, incremental: true flag ничего не сделал для ускорения сборки, пока определено noEmit: true. Поэтому вы должны либо удалить noEmit: true, либо изменить его на emitDeclarationOnly: true.

. Вы можете управлять папками вывода, используя outDir и declarationDir.

.
...