{"id":13452592,"url":"https://github.com/s-panferov/awesome-typescript-loader","last_synced_at":"2026-07-11T01:25:04.638Z","repository":{"id":27594407,"uuid":"31077672","full_name":"s-panferov/awesome-typescript-loader","owner":"s-panferov","description":"Awesome TypeScript loader for webpack","archived":true,"fork":false,"pushed_at":"2019-10-31T17:37:45.000Z","size":1238,"stargazers_count":2339,"open_issues_count":233,"forks_count":179,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-07-03T18:05:35.341Z","etag":null,"topics":["loader","typescript","webpack"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s-panferov.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-20T18:09:16.000Z","updated_at":"2026-06-17T06:13:43.000Z","dependencies_parsed_at":"2022-08-23T04:40:22.910Z","dependency_job_id":null,"html_url":"https://github.com/s-panferov/awesome-typescript-loader","commit_stats":null,"previous_names":[],"tags_count":174,"template":false,"template_full_name":null,"purl":"pkg:github/s-panferov/awesome-typescript-loader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-panferov%2Fawesome-typescript-loader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-panferov%2Fawesome-typescript-loader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-panferov%2Fawesome-typescript-loader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-panferov%2Fawesome-typescript-loader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s-panferov","download_url":"https://codeload.github.com/s-panferov/awesome-typescript-loader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-panferov%2Fawesome-typescript-loader/sbom","scorecard":{"id":793593,"data":{"date":"2025-08-11","repo":{"name":"github.com/s-panferov/awesome-typescript-loader","commit":"5d848d10ff4925d995857b4c2ed697d9494b207a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":5,"reason":"Found 15/30 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 15 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"78 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-6chw-6frg-f759","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-c6rq-rjc2-86v2","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-ff7x-qrg7-qggm","Warn: Project is vulnerable to: GHSA-vh7m-p724-62c2","Warn: Project is vulnerable to: GHSA-r9p9-mrjm-926w","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-4gmj-3p3h-gm8h","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-4q6p-r6v2-jvc5","Warn: Project is vulnerable to: GHSA-vvj3-85vf-fgmw","Warn: Project is vulnerable to: GHSA-q42p-pg8m-cqh6","Warn: Project is vulnerable to: GHSA-w457-6q6x-cgp9","Warn: Project is vulnerable to: GHSA-62gr-4qp9-h98f","Warn: Project is vulnerable to: GHSA-f52g-6jhx-586p","Warn: Project is vulnerable to: GHSA-2cf5-4w76-r9qv","Warn: Project is vulnerable to: GHSA-3cqr-58rm-57f8","Warn: Project is vulnerable to: GHSA-g9r4-xpmj-mj65","Warn: Project is vulnerable to: GHSA-q2c6-c6pm-g3gh","Warn: Project is vulnerable to: GHSA-765h-qjxv-5f44","Warn: Project is vulnerable to: GHSA-f2jv-r9rf-7988","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-2pr6-76vf-7546","Warn: Project is vulnerable to: GHSA-8j8c-7jfh-h6hx","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-6c8f-qphg-qjgp","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-4xc9-xhrj-v574","Warn: Project is vulnerable to: GHSA-x5rq-j2xg-h7qm","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-4xcv-9jjx-gfj3","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-fhjf-83wg-r2j9","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-g6ww-v8xp-vmwg","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-h9rv-jmmf-4pgx","Warn: Project is vulnerable to: GHSA-hxcc-f52p-wc94","Warn: Project is vulnerable to: GHSA-4g88-fppr-53pp","Warn: Project is vulnerable to: GHSA-4jqc-8m5r-9rpr","Warn: Project is vulnerable to: GHSA-4rq4-32rv-6wp6","Warn: Project is vulnerable to: GHSA-64g7-mvw6-v9qj","Warn: Project is vulnerable to: GHSA-vx3p-948g-6vhq","Warn: Project is vulnerable to: GHSA-7xcx-6wjh-7xp2","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-r628-mhmh-qjhw","Warn: Project is vulnerable to: GHSA-9r2w-394v-53qc","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-qq89-hq3f-393p","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-38fc-wpqx-33j7","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-23T08:17:21.199Z","repository_id":27594407,"created_at":"2025-08-23T08:17:21.199Z","updated_at":"2025-08-23T08:17:21.199Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35348376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["loader","typescript","webpack"],"created_at":"2024-07-31T07:01:28.481Z","updated_at":"2026-07-11T01:25:04.619Z","avatar_url":"https://github.com/s-panferov.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Webpack plugins","webpack","TypeScript 工具/库/框架","typescript"],"sub_categories":["Brunch Plugins","构建工具"],"readme":"# TypeScript loader for Webpack\n\n[![Join the chat at https://gitter.im/s-panferov/awesome-typescript-loader](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/s-panferov/awesome-typescript-loader?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Build Status](https://travis-ci.org/s-panferov/awesome-typescript-loader.svg?branch=master)](https://travis-ci.org/s-panferov/awesome-typescript-loader)\n\nSee also:\n\n1. [tsdoc.io](https://tsdoc.io) — TypeScript documentation portal (backed by [tygen](https://github.com/s-panferov/tygen)).\n\n## Installation\n\n```\nnpm install awesome-typescript-loader --save-dev\n```\n\n## Performance issues\n\nPlease note that ATL works **the same way as a TypeScript compiler** as much as possible. So please be careful with your `files`/`exclude`/`include` sections.\n\n**ADVICE**: Turn on `useCache` option.\n\n**ADVICE**: Typically you want your `files` section to include only entry points.\n\n**ADVICE**: The loader works faster if you use `isolatedModules` or `forceIsolatedModules` options.\n\n**ADVICE**: The loader works faster if you will use `reportFiles` to restrict\nchecking scope.\n\n**ADVICE**: Use the loader together with [hard-source-webpack-plugin](https://github.com/mzgoddard/hard-source-webpack-plugin)\n\nThe world is changing, other solutions are evolving and ATL may work **slower**\nfor [some workloads](https://github.com/s-panferov/awesome-typescript-loader/issues/497). Feel free to try [`ts-loader`](https://github.com/TypeStrong/ts-loader) with [`HappyPack` ](https://github.com/amireh/happypack) or [`thread-loader`](https://webpack.js.org/loaders/thread-loader/) and [hard-source-webpack-plugin](https://github.com/mzgoddard/hard-source-webpack-plugin).\n\n## Differences between [`ts-loader`](https://github.com/TypeStrong/ts-loader)\n\n`awesome-typescript-loader` loader was created mostly to speed-up compilation in my own projects.\nSome of them are quite big and I wanted to have full control on how my files are compiled. There are two major points:\n\n1) atl has first-class integration with Babel and enables caching possibilities. This can be useful for those who use Typescript with Babel.\nWhen `useBabel` and `useCache` flags are enabled, typescript's emit will be transpiled with Babel and cached.\nSo next time if source file (+environment) has the same checksum we can totally skip typescript's and babel's transpiling.\nThis significantly reduces build time in this scenario.\n\n2) atl is able to fork type-checker and emitter to a separate process, which also speeds-up some development scenarios (e.g. react with react-hot-loader)\nSo your webpack compilation will end earlier and you can explore compiled version in your browser while your files are typechecked.\n\n## Configuration\n\n1. Add `.ts` as a resolvable extension.\n2. Configure all files with a `.ts` extension to be handled by `awesome-typescript-loader`.\n\n**webpack.config.js**\n\n```javascript\n// `CheckerPlugin` is optional. Use it if you want async error reporting.\n// We need this plugin to detect a `--watch` mode. It may be removed later\n// after https://github.com/webpack/webpack/issues/3460 will be resolved.\nconst { CheckerPlugin } = require('awesome-typescript-loader')\n\nmodule.exports = {\n\n  // Currently we need to add '.ts' to the resolve.extensions array.\n  resolve: {\n    extensions: ['.ts', '.tsx', '.js', '.jsx']\n  },\n\n  // Source maps support ('inline-source-map' also works)\n  devtool: 'source-map',\n\n  // Add the loader for .ts files.\n  module: {\n    rules: [\n      {\n        test: /\\.tsx?$/,\n        loader: 'awesome-typescript-loader'\n      }\n    ]\n  },\n  plugins: [\n      new CheckerPlugin()\n  ]\n};\n```\n\nAfter that, you will be able to build TypeScript files with webpack.\n\n## NodeJS versions\n\n**The loader supports NodeJS 4 and newer.**\n\n## tsconfig.json\n\nYou can use the tsconfig.json file to configure your compiler and loader:\n\n```\n{\n    \"compilerOptions\": {\n        \"noImplicitAny\": true,\n        \"removeComments\": true\n    },\n    \"awesomeTypescriptLoaderOptions\": {\n        /* ... */\n    }\n}\n```\n\n## Supported TypeScript\n\n`awesome-typescript-loader@2.x` aims to support only `typescript@2.x` and `webpack@2x`, if you need old compilers please use\n`1.x` or `0.x` versions.\n\n## Advanced path resolution in TypeScript 2.0\n\nIf you want to use new `paths` and `baseUrl` feature of TS 2.0 please include `TsConfigPathsPlugin`.\nThis feature is available only for `webpack@2.1`.\n\n```\nconst { TsConfigPathsPlugin } = require('awesome-typescript-loader');\n\nresolve: {\n    plugins: [\n        new TsConfigPathsPlugin(/* { configFileName, compiler } */)\n    ]\n}\n```\n\n## Loader options\n\n### silent *(boolean) (default=false)*\n\nNo logging from the checker. Please note that this option disables async error reporting because\nthis option bans `console.log()` usage.\n\n### compiler *(string) (default='typescript')*\n\nAllows use of TypeScript compilers other than the official one. Must be\nset to the NPM name of the compiler, e.g. *ntypescript* or the path to a package folder.\nNote that the compiler must be installed in **your** project. You can also use\nnightly versions.\n\n### useTranspileModule (boolean) (default=false)*\n\nUse fast `transpileModule` emit mode. Disables automatically when you set compilerOption `declaration: true` ([reference](https://www.typescriptlang.org/docs/handbook/compiler-options.html)).\n\n### instance *(string) (default='at-loader')*\n\nAllows the use of several TypeScript compilers with different settings in one app. Override `instance` to initialize another instance.\n\n### configFileName *(string) (default='tsconfig.json')*\n\nSpecifies the path to a TS config file. This is useful when you have multiple config files. This setting is useless *inside* a TS config file.\n\n### transpileOnly *(boolean)*\n\nUse this setting to disable type checking, enabling this will nullify the `CheckerPlugin` usage in your webpack configuration.\n\n### errorsAsWarnings *(boolean)*\n\nEmit all typescript errors as warnings.\n\n### forceIsolatedModules *(boolean)*\n\nUse this setting to disable dependent module recompilation.\n\n### ignoreDiagnostics *(number[]) (default=[])*\n\nYou can squelch certain TypeScript errors by specifying an array of [diagnostic codes](https://github.com/Microsoft/TypeScript/blob/master/src/compiler/diagnosticMessages.json) to ignore.\nFor example, you can transpile [stage 1 properties](https://github.com/jeffmo/es-class-fields-and-static-properties) from `*.js` using `\"ignoreDiagnostics\": [8014]`.\n\n### useBabel *(boolean) (default=false)*\n\nInvoke Babel to transpile files. Useful with ES6 target. Please see `useCache` option\nwhich can improve warm-up time.\n\nIf you're using `babelOptions`, anything in `.babelrc` will take precedence. This breaks expected usage for scenarios where you need two sets of Babel configs (example: one for Webpack, one for your build tools).\n\nYou may want to `\"babelrc\": false` to disable `.babelrc` if you don't want it:\n\n```json\n{\n    \"useBabel\": true,\n    \"babelOptions\": {\n        \"babelrc\": false, /* Important line */\n        \"presets\": [\n            [\"@babel/preset-env\", { \"targets\": \"last 2 versions, ie 11\", \"modules\": false }]\n        ]\n    },\n    \"babelCore\": \"@babel/core\", // needed for Babel v7\n}\n```\n\n### babelCore *(string) (default=undefined)*\n\nOverride the path used to find `babel-core`. Useful if `node_modules` is installed in a non-standard place or webpack is being invoked from a directory not at the root of the project.\n\nFor Babel 7, this should be set to `\"@babel/core\"`.\n\n### babelOptions *(object) (default=null)*\n\nUse this option to pass some options to Babel (e.g. presets). Please note that\n[`.babelrc` file](https://babeljs.io/docs/usage/babelrc/) is more universal way to do this.\n\n### useCache *(boolean) (default=false)*\n\nUse internal file cache. This is useful with Babel, when processing takes a long time to complete. Improves warm-up time.\n\n### usePrecompiledFiles *(boolean) (default=false)*\n\nUse pre-compiled files if any. Files must be named as `{filename}.js` and `{filename}.map`.\n\n### cacheDirectory *(string) (default='.awcache')*\n\nDirectory where cache is stored.\n\n### reportFiles *(string[])*\n\nSpecify [globs](https://github.com/isaacs/minimatch) to report file diagnostics. ALL OTHER ERRORS WILL NOT BE REPORTED. Example:\n\n```\nreportFiles: [\n    \"src/**/*.{ts,tsx}\"\n]\n```\n\n### getCustomTransformers *(string | ((program: ts.Program) =\u003e ts.CustomTransformers | undefined)) (default=undefined)*\n\nProvide custom transformers, TypeScript 2.4.1+. Example:\n\n```js\nconst styledComponentsTransformer = require('typescript-plugin-styled-components').default;\nconst keysTransformer = require('ts-transformer-keys/transformer').default;\n\n// ...\nrules: [\n    {\n        test: /\\.tsx?$/,\n        loader: 'awesome-typescript-loader',\n        options: {\n            // ... other loader's options\n            getCustomTransformers: program =\u003e ({\n                before: [\n                    styledComponentsTransformer(),\n                    keysTransformer(program)\n                ]\n            })\n        }\n    }\n]\n```\n\n## Compiler options\n\nYou can pass compiler options inside the loader query string or in a TS config file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-panferov%2Fawesome-typescript-loader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs-panferov%2Fawesome-typescript-loader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-panferov%2Fawesome-typescript-loader/lists"}