{
  "manifest": {
    "name": "fork-ts-checker-webpack-plugin",
    "version": "6.5.3",
    "description": "Runs typescript type checker and linter on separate process.",
    "keywords": [
      "fast",
      "fork",
      "linter",
      "webpack",
      "plugin",
      "ts-loader",
      "typescript",
      "webpack"
    ],
    "bugs": {
      "url": "https://github.com/TypeStrong/fork-ts-checker-webpack-plugin/issues"
    },
    "repository": {
      "type": "git",
      "url": "https://github.com/TypeStrong/fork-ts-checker-webpack-plugin.git"
    },
    "license": "MIT",
    "author": {
      "name": "Piotr Oleś",
      "email": "piotrek.oles@gmail.com"
    },
    "contributors": [
      {
        "name": "Piotr Oleś",
        "email": "piotrek.oles@gmail.com",
        "url": "https://github.com/piotr-oles"
      },
      {
        "name": "John Reilly",
        "email": "johnny_reilly@hotmail.com",
        "url": "https://blog.johnnyreilly.com"
      }
    ],
    "files": [
      "lib"
    ],
    "main": "lib/index.js",
    "types": "lib/index.d.ts",
    "scripts": {
      "build": "cross-env rimraf lib && cross-env tsc --version && cross-env tsc",
      "lint": "cross-env eslint ./src ./test --ext .ts",
      "test": "yarn build && yarn test:unit && yarn test:e2e",
      "test:unit": "cross-env jest --config=test/unit/jest.config.js",
      "test:e2e": "npm pack && cross-env jest --config=test/e2e/jest.config.js --ci -i -b",
      "precommit": "cross-env lint-staged && yarn build && yarn test:unit",
      "commit": "cross-env git-cz",
      "semantic-release": "semantic-release"
    },
    "husky": {
      "hooks": {
        "pre-commit": "lint-staged && yarn build && yarn test:unit",
        "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
      }
    },
    "commitlint": {
      "extends": [
        "@commitlint/config-conventional"
      ]
    },
    "lint-staged": {
      "*.ts": "eslint --fix"
    },
    "config": {
      "commitizen": {
        "path": "cz-conventional-changelog"
      }
    },
    "dependencies": {
      "@babel/code-frame": "^7.8.3",
      "@types/json-schema": "^7.0.5",
      "chalk": "^4.1.0",
      "chokidar": "^3.4.2",
      "cosmiconfig": "^6.0.0",
      "deepmerge": "^4.2.2",
      "fs-extra": "^9.0.0",
      "glob": "^7.1.6",
      "memfs": "^3.1.2",
      "minimatch": "^3.0.4",
      "schema-utils": "2.7.0",
      "semver": "^7.3.2",
      "tapable": "^1.0.0"
    },
    "peerDependencies": {
      "eslint": ">= 6",
      "typescript": ">= 2.7",
      "webpack": ">= 4",
      "vue-template-compiler": "*"
    },
    "peerDependenciesMeta": {
      "eslint": {
        "optional": true
      },
      "vue-template-compiler": {
        "optional": true
      }
    },
    "devDependencies": {
      "@commitlint/config-conventional": "^11.0.0",
      "@semantic-release/commit-analyzer": "^8.0.1",
      "@semantic-release/exec": "^5.0.0",
      "@semantic-release/github": "^7.1.1",
      "@semantic-release/npm": "^7.0.6",
      "@semantic-release/release-notes-generator": "^9.0.1",
      "@types/babel__code-frame": "^7.0.2",
      "@types/cross-spawn": "^6.0.2",
      "@types/eslint": "^7.2.4",
      "@types/fs-extra": "^9.0.2",
      "@types/jest": "^26.0.14",
      "@types/minimatch": "^3.0.1",
      "@types/mock-fs": "^4.13.0",
      "@types/node": "^14.11.10",
      "@types/rimraf": "^3.0.0",
      "@types/semver": "^7.3.4",
      "@types/webpack": "^4.41.22",
      "@typescript-eslint/eslint-plugin": "^2.27.0",
      "@typescript-eslint/parser": "^2.27.0",
      "commitlint": "^11.0.0",
      "cross-env": "^7.0.2",
      "cross-spawn": "^7.0.3",
      "eslint": "^6.8.0",
      "eslint-config-prettier": "^6.13.0",
      "eslint-plugin-node": "^11.1.0",
      "eslint-plugin-prettier": "^3.1.4",
      "git-cz": "^4.7.1",
      "husky": "^4.3.0",
      "jest": "^26.5.3",
      "jest-circus": "^26.5.3",
      "jest-environment-node": "^26.5.2",
      "lint-staged": "^10.4.2",
      "mock-fs": "^4.13.0",
      "prettier": "^2.1.2",
      "rimraf": "^3.0.2",
      "semantic-release": "^17.2.1",
      "strip-ansi": "^6.0.0",
      "tree-kill": "^1.2.2",
      "ts-jest": "^26.4.1",
      "typescript": "^3.8.3",
      "webpack": "^4.42.1"
    },
    "engines": {
      "node": ">=10",
      "yarn": ">=1.0.0"
    },
    "_registry": "npm",
    "_loc": "/homez.1033/heliovt/.cache/yarn/v6/npm-fork-ts-checker-webpack-plugin-6.5.3-eda2eff6e22476a2688d10661688c47f611b37f3-integrity/node_modules/fork-ts-checker-webpack-plugin/package.json",
    "readmeFilename": "README.md",
    "readme": "<div align=\"center\">\n\n<h1>Fork TS Checker Webpack Plugin</h1>\n<p>Webpack plugin that runs TypeScript type checker on a separate process.</p>\n\n[![npm version](https://img.shields.io/npm/v/fork-ts-checker-webpack-plugin.svg)](https://www.npmjs.com/package/fork-ts-checker-webpack-plugin)\n[![build status](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin/workflows/CI/CD/badge.svg?branch=main&event=push)](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin/actions?query=branch%3Amain+event%3Apush)\n[![downloads](http://img.shields.io/npm/dm/fork-ts-checker-webpack-plugin.svg)](https://npmjs.org/package/fork-ts-checker-webpack-plugin)\n[![commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)\n\n</div>\n\n## Features\n\n * Speeds up [TypeScript](https://github.com/Microsoft/TypeScript) type checking and [ESLint](https://eslint.org/) linting (by moving each to a separate process) 🏎\n * Supports modern TypeScript features like [project references](https://www.typescriptlang.org/docs/handbook/project-references.html) and [incremental mode](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#faster-subsequent-builds-with-the---incremental-flag) ✨\n * Supports [Vue Single File Component](https://vuejs.org/v2/guide/single-file-components.html) ✅ \n * Displays nice error messages with the [code frame](https://babeljs.io/docs/en/next/babel-code-frame.html) formatter 🌈\n\n## Installation\n\nThis plugin requires minimum **Node.js 10**, **Webpack 4**, **TypeScript 2.7** and optionally **ESLint 6**\n\n* If you depend on **Webpack 2**, **Webpack 3**, or **TSLint 4**, please use [version 3](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin/tree/v3.1.1) of the plugin. \n* If you depend on **TypeScript >= 2.1** and **< 2.7** or you can't update to **Node 10**, please use [version 4](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin/tree/v4.1.4) of the plugin.\n```sh\n# with npm\nnpm install --save-dev fork-ts-checker-webpack-plugin\n\n# with yarn\nyarn add --dev fork-ts-checker-webpack-plugin\n```\n\nThe minimal webpack config (with [ts-loader](https://github.com/TypeStrong/ts-loader))\n\n```js\n// webpack.config.js\nconst ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');\n\nmodule.exports = {\n  context: __dirname, // to automatically find tsconfig.json\n  entry: './src/index.ts',\n  resolve: {\n    extensions: [\".ts\", \".tsx\", \".js\"],\n  },\n  module: {\n    rules: [\n      {\n        test: /\\.tsx?$/,\n        loader: 'ts-loader',\n        exclude: /node_modules/,\n        options: {\n          // disable type checker - we will use it in fork plugin\n          transpileOnly: true\n        }\n      }\n    ]\n  },\n  plugins: [new ForkTsCheckerWebpackPlugin()]\n};\n```\n\n> Examples how to configure it with [babel-loader](https://github.com/babel/babel-loader), [ts-loader](https://github.com/TypeStrong/ts-loader),\n> [eslint](https://github.com/eslint/eslint) and [Visual Studio Code](https://code.visualstudio.com/) are in the \n> [**examples**](./examples) directory.\n\n## Modules resolution\n\nIt's very important to be aware that **this plugin uses [TypeScript](https://github.com/Microsoft/TypeScript)'s, not\n[webpack](https://github.com/webpack/webpack)'s modules resolution**. It means that you have to setup `tsconfig.json` correctly. \n\n> It's because of the performance - with TypeScript's module resolution we don't have to wait for webpack to compile files.\n>\n> To debug TypeScript's modules resolution, you can use `tsc --traceResolution` command.\n\n## ESLint\n\nIf you'd like to use ESLint with the plugin, ensure you have the relevant dependencies installed:\n\n```sh\n# with npm\nnpm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin\n\n# with yarn\nyarn add --dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin\n```\n\nThen set up ESLint in the plugin. This is the minimal configuration:\n```js\n// webpack.config.js\nconst ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');\n\nmodule.exports = {\n  // ...the webpack configuration\n  plugins: [\n    new ForkTsCheckerWebpackPlugin({\n      eslint: {\n        files: './src/**/*.{ts,tsx,js,jsx}' // required - same as command `eslint ./src/**/*.{ts,tsx,js,jsx} --ext .ts,.tsx,.js,.jsx`\n      }\n    })\n  ]\n};\n```\n\nYou should also have an ESLint configuration file in your root project directory. \nHere is a sample `.eslintrc.js` configuration for a TypeScript project:\n\n```js\nmodule.exports = {\n  parser: '@typescript-eslint/parser',\n  parserOptions: {\n    ecmaVersion: 2018,\n    sourceType: 'module',\n  },\n  extends: [\n    'plugin:@typescript-eslint/recommended'\n  ],\n  rules: {\n    // place to specify ESLint rules - can be used to overwrite rules specified from the extended configs\n    // e.g. \"@typescript-eslint/explicit-function-return-type\": \"off\",\n  }\n};\n```\n\nThere's a [good explanation on setting up TypeScript ESLint support by Robert Cooper](https://dev.to/robertcoopercode/using-eslint-and-prettier-in-a-typescript-project-53jb).\n\n## Options\n\nThis plugin uses [`cosmiconfig`](https://github.com/davidtheclark/cosmiconfig). This means that besides the plugin constructor,\nyou can place your configuration in the:\n * `\"fork-ts-checker\"` field in the `package.json`\n * `.fork-ts-checkerrc` file in JSON or YAML format\n * `fork-ts-checker.config.js` file exporting a JS object\n  \nOptions passed to the plugin constructor will overwrite options from the cosmiconfig (using [deepmerge](https://github.com/TehShrike/deepmerge)).\n\n| Name              | Type                               | Default value                                                      | Description |\n| ----------------- | ---------------------------------- | ------------------------------------------------------------------ | ----------- |\n| `async`           | `boolean`                          | `compiler.options.mode === 'development'`                          | If `true`, reports issues **after** webpack's compilation is done. Thanks to that it doesn't block the compilation. Used only in the `watch` mode. |\n| `typescript`      | `object` or `boolean`              | `true`                                                             | If a `boolean`, it enables/disables TypeScript checker. If an `object`, see [TypeScript options](#typescript-options). |\n| `eslint`          | `object`                           | `undefined`                                                        | If `undefined`, it disables ESLint linter. If an `object`, see [ESLint options](#eslint-options). |\n| `issue`           | `object`                           | `{}`                                                               | See [Issues options](#issues-options). |\n| `formatter`       | `string` or `object` or `function` | `codeframe`                                                        | Available formatters are `basic`, `codeframe` and a custom `function`. To [configure](https://babeljs.io/docs/en/babel-code-frame#options) `codeframe` formatter, pass object: `{ type: 'codeframe', options: { <coderame options> } }`. |\n| `logger`          | `object`              | `{ infrastructure: 'silent', issues: 'console', devServer: true }` | Available loggers are `silent`, `console`, and `webpack-infrastructure`. Infrastructure logger prints additional information, issue logger prints `issues` in the `async` mode. If `devServer` is set to `false`, errors will not be reported to Webpack Dev Server. |\n\n### TypeScript options\n\nOptions for the TypeScript checker (`typescript` option object).\n\n| Name                 | Type      | Default value                                                                                                  | Description |\n| -------------------- | --------- | -------------------------------------------------------------------------------------------------------------- | ----------- |\n| `enabled`            | `boolean` | `true`                                                                                                         | If `true`, it enables TypeScript checker. |\n| `memoryLimit`        | `number`  | `2048`                                                                                                         | Memory limit for the checker process in MB. If the process exits with the allocation failed error, try to increase this number. |\n| `configFile`         | `string`  | `'tsconfig.json'`                                                                                              | Path to the `tsconfig.json` file (path relative to the `compiler.options.context` or absolute path) |\n| `configOverwrite`    | `object`  | `{ compilerOptions: { skipLibCheck: true, sourceMap: false, inlineSourceMap: false, declarationMap: false } }` | This configuration will overwrite configuration from the `tsconfig.json` file. Supported fields are: `extends`, `compilerOptions`, `include`, `exclude`, `files`, and `references`. |\n| `context`            | `string`  | `dirname(configuration.configFile)`                                                                            | The base path for finding files specified in the `tsconfig.json`. Same as the `context` option from the [ts-loader](https://github.com/TypeStrong/ts-loader#context). Useful if you want to keep your `tsconfig.json` in an external package. Keep in mind that **not** having a `tsconfig.json` in your project root can cause different behaviour between `fork-ts-checker-webpack-plugin` and `tsc`. When using editors like `VS Code` it is advised to add a `tsconfig.json` file to the root of the project and extend the config file referenced in option `configFile`.  |\n| `build`              | `boolean` | `false`                                                                                                        | The equivalent of the `--build` flag for the `tsc` command. |\n| `mode`               | `'readonly'` or `'write-tsbuildinfo'` or `'write-dts'` or `'write-references'` | `'write-tsbuildinfo'`                                      | If you use the `babel-loader`, it's recommended to use `write-references` mode to improve initial compilation time. If you use `ts-loader`, it's recommended to use `write-tsbuildinfo` mode to not overwrite files emitted by the `ts-loader`. If you use `ts-loader` with `transpileOnly` flag set to `true`, use `'write-dts` to emit the type definition files. |\n| `diagnosticOptions` | `object`  | `{ syntactic: false, semantic: true, declaration: false, global: false }`                                      | Settings to select which diagnostics do we want to perform. |\n| `extensions`         | `object`  | `{}`                                                                                                           | See [TypeScript extensions options](#typescript-extensions-options). |\n| `profile`            | `boolean` | `false`                                                                                                        | Measures and prints timings related to the TypeScript performance. |\n| `typescriptPath`     | `string`  | `require.resolve('typescript')`                                                                                | If supplied this is a custom path where TypeScript can be found. |\n\n#### TypeScript extensions options\n\nOptions for the TypeScript checker extensions (`typescript.extensions` option object).\n\n| Name                 | Type                  | Default value             | Description |\n| -------------------- | --------------------- | ------------------------- | ----------- |\n| `vue`                | `object` or `boolean` | `false`                   | If `true`, it enables Vue [Single File Component](https://vuejs.org/v2/guide/single-file-components.html) support. |\n| `vue.enabled`        | `boolean`             | `false`                   | Same as the `vue` option |\n| `vue.compiler`       | `string`              | `'vue-template-compiler'` | The package name of the compiler that will be used to parse `.vue` files. You can use `'nativescript-vue-template-compiler'` if you use [nativescript-vue](https://github.com/nativescript-vue/nativescript-vue) | \n\n### ESLint options\n\nOptions for the ESLint linter (`eslint` option object).\n\n| Name                 | Type                   | Default value             | Description |\n| -------------------- | ---------------------- | ------------------------- | ----------- |\n| `enabled`            | `boolean`              | `false`                   | If `true`, it enables ESLint linter. If you set the `files` option, it will be `true` by default. |\n| `files`              | `string` or `string[]` | This value is required    | One or more [glob patterns](https://en.wikipedia.org/wiki/Glob_(programming)) to the files that should be linted. Works the same as the `eslint` command. |\n| `memoryLimit`        | `number`               | `2048`                    | Memory limit for the linter process in MB. If the process exits with the allocation failed error, try to increase this number. |\n| `options`            | `object`               | `{}`                      | [Options](https://eslint.org/docs/developer-guide/nodejs-api#cliengine) that can be used to initialize ESLint. |\n\n### Issues options\n\nOptions for the issues filtering (`issue` option object).\nI could write some plain text explanation of these options but I think code will explain it better:\n\n```typescript\ninterface Issue {\n  origin: 'typescript' | 'eslint';\n  severity: 'error' | 'warning';\n  code: string;\n  file?: string;\n}\n\ntype IssueMatch = Partial<Issue>; // file field supports glob matching\ntype IssuePredicate = (issue: Issue) => boolean;\ntype IssueFilter = IssueMatch | IssuePredicate | (IssueMatch | IssuePredicate)[];\n```\n\n| Name      | Type          | Default value | Description |\n| --------- | ------------- | ------------- | ----------- |\n| `include` | `IssueFilter` | `undefined`   | If `object`, defines issue properties that should be [matched](./src/issue/IssueMatch.ts). If `function`, acts as a predicate where `issue` is an argument. |\n| `exclude` | `IssueFilter` | `undefined`   | Same as `include` but issues that match this predicate will be excluded. |\n\n<details>\n<summary>Expand example</summary>\n\nInclude issues from the `src` directory, exclude eslint issues from `.spec.ts` files:\n\n```js\nmodule.exports = {\n  // ...the webpack configuration\n  plugins: [\n    new ForkTsCheckerWebpackPlugin({\n      issue: {\n        include: [\n          { file: '**/src/**/*' }\n        ],\n        exclude: [\n          { origin: 'eslint', file: '**/*.spec.ts' }\n        ]\n      }\n    })\n  ]\n};\n```\n\n</details>\n\n## Vue.js\n\n⚠️ There are additional **constraints** regarding Vue.js Single File Component support: ⚠️\n * It requires **TypeScript >= 3.8.0** (it's a limitation of the `transpileOnly` mode from `ts-loader`)\n * It doesn't work with the `build` mode (project references)\n\nTo enable Vue.js support, follow these steps:\n\n<details>\n<summary>Expand Vue.js set up instruction</summary>\n\n1. Ensure you have all required packages installed:\n```sh\n# with npm\nnpm install --save vue vue-class-component\nnpm install --save-dev vue-loader ts-loader css-loader vue-template-compiler \n\n# with yarn\nyarn add vue vue-class-component\nyarn add --dev vue-loader ts-loader css-loader vue-template-compiler \n```\n\n2. Add `tsconfig.json` configuration:\n```json\n{\n  \"compilerOptions\": {\n    \"experimentalDecorators\": true,\n    \"jsx\": \"preserve\",\n    \"target\": \"ES5\",\n    \"lib\": [\"ES6\", \"DOM\"],\n    \"baseUrl\": \".\",\n    \"paths\": {\n      \"@/*\": [\"src/*\"],\n      \"~/*\": [\"src/*\"]\n    },\n    \"sourceMap\": true,\n    \"importsNotUsedAsValues\": \"preserve\"\n  },\n  \"include\": [\n    \"src/**/*.ts\",\n    \"src/**/*.vue\"\n  ],\n  \"exclude\": [\n    \"node_modules\"\n  ]\n}\n```\n\n3. Add `webpack.config.js` configuration:\n```js\nconst path = require('path');\nconst VueLoaderPlugin = require('vue-loader/lib/plugin');\nconst ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');\n\nmodule.exports = {\n  entry: './src/index.ts',\n  output: {\n    filename: 'index.js',\n    path: path.resolve(__dirname, 'dist'),\n  },\n  module: {\n    rules: [\n      {\n        test: /\\.vue$/,\n        loader: 'vue-loader'\n      },\n      {\n        test: /\\.ts$/,\n        loader: 'ts-loader',\n        exclude: /node_modules/,\n        options: {\n          appendTsSuffixTo: [/\\.vue$/],\n          transpileOnly: true\n        }\n      },\n      {\n        test: /\\.css$/,\n        loader: 'css-loader'\n      },\n    ],\n  },\n  resolve: {\n    extensions: ['.ts', '.js', '.vue', '.json'],\n    alias: {\n      '@': path.resolve(__dirname, './src'),\n      '~': path.resolve(__dirname, './src'),\n    }\n  },\n  plugins: [\n    new VueLoaderPlugin(),\n    new ForkTsCheckerWebpackPlugin({\n      typescript: {\n        extensions: {\n          vue: true\n        }\n      }\n    })\n  ]\n};\n```\n\n4. Add `src/types/vue.d.ts` file to shim `.vue` modules:\n```typescript\ndeclare module \"*.vue\" {\n  import Vue from \"vue\";\n  export default Vue;\n}\n```\n\n5. If you are working in VSCode, you can get the [Vetur](https://marketplace.visualstudio.com/items?itemName=octref.vetur) extension to complete the developer workflow.\n\n</details>\n\n## Plugin hooks\n\nThis plugin provides some custom webpack hooks:\n\n| Hook key   | Type                       | Params                | Description |\n| ---------- | -------------------------- | --------------------- | ----------- |\n| `start`    | `AsyncSeriesWaterfallHook` | `change, compilation` | Starts issues checking for a compilation. It's an async waterfall hook, so you can modify the list of changed and removed files or delay the start of the service. |\n| `waiting`  | `SyncHook`                 | `compilation`         | Waiting for the issues checking. |\n| `canceled` | `SyncHook`                 | `compilation`         | Issues checking for the compilation has been canceled. |\n| `error`    | `SyncHook`                 | `compilation`         | An error occurred during issues checking. |\n| `issues`   | `SyncWaterfallHook`        | `issues, compilation` | Issues have been received and will be reported. It's a waterfall hook, so you can modify the list of received issues. |\n\nTo access plugin hooks and tap into the event, we need to use the `getCompilerHooks` static method.\nWhen we call this method with a [webpack compiler instance](https://webpack.js.org/api/node/), it returns the object with\n[tapable](https://github.com/webpack/tapable) hooks where you can pass in your callbacks.\n\n```js\n// ./src/webpack/MyWebpackPlugin.js\nconst ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');\n\nclass MyWebpackPlugin {\n  apply(compiler) {\n    const hooks = ForkTsCheckerWebpackPlugin.getCompilerHooks(compiler);\n\n    // log some message on waiting\n    hooks.waiting.tap('MyPlugin', () => {\n      console.log('waiting for issues');\n    });\n    // don't show warnings\n    hooks.issues.tap('MyPlugin', (issues) => \n      issues.filter((issue) => issue.severity === 'error')\n    );\n  }\n}\n\nmodule.exports = MyWebpackPlugin;\n\n// webpack.config.js\nconst ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');\nconst MyWebpackPlugin = require('./src/webpack/MyWebpackPlugin');\n\nmodule.exports = {\n  /* ... */\n  plugins: [\n    new ForkTsCheckerWebpackPlugin(),\n    new MyWebpackPlugin()\n  ]\n};\n```\n\n## Typings\n\nTo use the plugin typings, you have to install `@types/webpack`. It's not included by default to not collide with your\nexisting typings (`@types/webpack` imports `@types/node`). [It's an old TypeScript issue](https://github.com/microsoft/TypeScript/issues/18588), \nthe alternative is to set `skipLibCheck: true` in the `compilerOptions` 😉\n```sh\n# with npm\nnpm install --save-dev @types/webpack\n\n# with yarn\nyarn add --dev @types/webpack\n```\n\n## Profiling types resolution\n\nStarting from TypeScript 4.1.0, you can profile long type checks by\nsetting \"generateTrace\" compiler option. This is an instruction from [microsoft/TypeScript#40063](https://github.com/microsoft/TypeScript/pull/40063):\n\n1. Set \"generateTrace\": \"{folderName}\" in your `tsconfig.json`\n2. Look in the resulting folder. If you used build mode, there will be a `legend.json` telling you what went where. \n   Otherwise, there will be `trace.json` file and `types.json` files.\n3. Navigate to [edge://tracing](edge://tracing) or [chrome://tracing](chrome://tracing) and load `trace.json`\n4. Expand Process 1 with the little triangle in the left sidebar\n5. Click on different blocks to see their payloads in the bottom pane\n6. Open `types.json` in an editor\n7. When you see a type ID in the tracing output, go-to-line {id} to find data about that type\n\n\n## Related projects\n \n * [`ts-loader`](https://github.com/TypeStrong/ts-loader) - TypeScript loader for webpack.\n * [`babel-loader`](https://github.com/babel/babel-loader) - Alternative TypeScript loader for webpack.\n * [`fork-ts-checker-notifier-webpack-plugin`](https://github.com/johnnyreilly/fork-ts-checker-notifier-webpack-plugin) - Notifies about build status using system notifications (similar to the [webpack-notifier](https://github.com/Turbo87/webpack-notifier)).\n\n## Credits\n\nThis plugin was created in [Realytics](https://www.realytics.io/) in 2017. Thank you for supporting Open Source.\n\n## License\n\nMIT License\n",
    "licenseText": "MIT License\n\nCopyright (c) 2020 TypeStrong\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  "artifacts": [],
  "remote": {
    "resolved": "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3",
    "type": "tarball",
    "reference": "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz",
    "hash": "eda2eff6e22476a2688d10661688c47f611b37f3",
    "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==",
    "registry": "npm",
    "packageName": "fork-ts-checker-webpack-plugin",
    "cacheIntegrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== sha1-7aLv9uIkdqJojRBmFojEf2EbN/M="
  },
  "registry": "npm",
  "hash": "eda2eff6e22476a2688d10661688c47f611b37f3"
}