-
-
Save lubkoKuzenko/b0dfc526a8be2a00f007542960206260 to your computer and use it in GitHub Desktop.
tsconfig.json с комментариями.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Show hidden characters
// Файл "tsconfig.json": | |
// - устанавливает корневой каталог проекта TypeScript; | |
// - выполняет настройку параметров компиляции; | |
// - устанавливает файлы проекта. | |
// Присутствие файла "tsconfig.json" в папке указывает TypeScript, что это корневая папка проекта. | |
// Внутри "tsconfig.json" указываются настройки компилятора TypeScript и корневые файлы проекта. | |
// Программа компилятора "tsc" ищет файл "tsconfig.json" сначала в папке, где она расположена, затем поднимается выше и ищет в родительских папках согласно их вложенности друг в друга. | |
// Команда "tsc --project C:\path\to\my\project\folder" берет файл "tsconfig.json" из папки, расположенной по данному пути. | |
// Файл "tsconfig.json" может быть полностью пустым, тогда компилятор скомпилирует все файлы с настройками заданными по умолчанию. | |
// Опции компилятора, перечисленные в командной строке перезаписывают собой опции, заданные в файле "tsconfig.json". | |
{ | |
"extends": "./configs/base", // Загрузить другой конфигурационный файл "tsconfig.json", взятый за основу, и перезаписать его значениями из секций ниже. | |
"compileOnSave": true, // При значении true указывает используемой редактору кода производить компиляцию при каждом сохранении файлов TypeScript. Поддерживается не всеми редакторами кода. | |
"compilerOptions": { | |
// Настраивает параметры компиляции. Параметры называются также, как и в командной строке. | |
// Основные настройки. | |
// Настройки путей для создания выходных файлов. | |
"module": "amd", // Определяет тип импорта кода в итоговом файле, прописанном в "outFile". Необходимо задавать при использовании опции "outFile". | |
"outFile": "./build/bundle.js", // Имя единого итогового выходного файла, в который будут помещен код из всех найденных TypeScript-файлов. | |
"outDir": "./build", // Поместить все скомпилированные файлы в данную папку, согласно их вложенности в исходниках. Если задана опция "outFile", то опция "outDir" будет проигнорирована. | |
// Если "outFile" и "outDir" не заданы, то выходные файлы будут созданы рядом со своими исходниками. | |
// Настройки для поиска @types | |
"typeRoots": [ | |
// По умолчанию все видимые в проекте пакеты "@types", расположенные в папках "node_modules" на всех уровнях вложенности, используются при компиляции. | |
// Но, если указан массив "typeRoots", тогда при компиляции будут использованы только описания типов, найденные в папках, расположенных по перечисленным в нем путях. | |
// При этом описания типов, находящихся в других папках использованы не будут. | |
// Папки с пакетами описаний типов обычно содержат внутри себя файл "index.d.ts" или "package.json" со свойством "types". | |
"./typings" // При компиляции будут использованы только файлы описания типов ".d.ts" находящиеся в этой папке. | |
], | |
"types": ["node", "lodash", "express"], // Если указан параметр "types", то из всех найденных будут использованы только те описания типов, что указаны в его массиве, а именно: "./typings/node", "./typings/lodash", "./typings/express". | |
// Другие найденные типы использоваться не будут. | |
// Задание "types": [] приведет к отключению автоматического использования описаний типов из папок "@types". | |
"rootDir": "../src", // Путь до папки с которой надо начинать поиск входных файлов. Обычно корневая директория вычисляется по списку входных файлов. Данная опция необходима для проверки, что все найденные TypeScript-файлы находятся внутри корневой папки. | |
"rootDirs": [ | |
// Список корневых папок, совокупный контент которых представляет структуру проекта для компиляции. | |
"src/views", | |
"generated/templates/views" | |
], | |
"baseUrl": ".", // Путь до базовой папки для поиска не относительных путей до файлов. | |
"build": false, // TODO | |
"composite": true, // TODO | |
"paths": { | |
// Укажите сопоставление маршрутов для вычисления по сравнению с параметром baseUrl. | |
"jquery": ["node_modules/jquery/dist/jquery"] // Путь относительно "baseUrl". | |
}, | |
"lib": ["es5", "es6", "es2015.promise", "es2016.array.include"], // Набор библиотечных файлов полифилов, которые будут включены в итоговый выходной файл. | |
"jsx": "react", // Включать ли поддержку ".tsx" файлов? | |
"jsxFactory": "React.createElement", // Укажите фабричную функцию JSX, чтобы использовать, когда таргетинг реагирует на обработку JSX, например: 'React.createElement' или 'h'. Требуется TypeScript версии 2.1 или новее. | |
"allowJs": false, // Разрешать компилировать файлы с JavaScript-кодом? | |
"alwaysStrict": false, // Компилировать ли каждый файл в строгом режиме и создавать ли 'use strict' для каждого выходного файла? Требуется TypeScript версии 2.1 или новее. | |
"checkJs": false, // Сообщить об ошибках в .js-файлах? Используйте совместно с "allowJs". | |
"downlevelIteration": false, // Обеспечьте полную поддержку итераций для for - in, ..., деструктуризации при настройке на ES5 или ES3? | |
"importHelpers": false, // Имортировать созданные хелперы (__extends, __rest и так далее) из "tslib". | |
"noEmitOnError": true, // Не создавать итоговый файл, если во время компиляции произошла ошибка. | |
"noEmitHelpers": false, // Не помещать в код итогового файла функции хелперы. | |
"noUnusedLocals": true, // Показывать ошибку, если где-то найдены неиспользуемые локальные значения. | |
"noUnusedParameters": true, // Показывать ошибку, если где-то найдены неиспользуемые параметры. | |
"noImplicitUseStrict": false, // Не записывать 'use strict' в итоговый выходной файл? | |
"pretty": true, // Окрашивать в терминале сообщения об ошибках. | |
"removeComments": true, // Удалить все комментарии из итогового файла. | |
"sourceMap": true, // Создавать ли соответствующие source map файлы ".map"? | |
"strict": false, // Включить ли все строги проверки типов сразу: noImplicitAny, noImplicitThis, alwaysStrict, strictNullChecks, strictFunctionTypes, strictPropertyInitialization? | |
"strictNullChecks": false, // Значения "null" и "undefined" могут быть присвоены только значениям данного типа и значениям только с типом "any"? | |
"target": "es3", // Тип кода создаваемого итогового файла. | |
"watch": true, // Запустить компилятор в режиме отслеживания изменений во входных файлах и их повторной компиляции? | |
// Дополнительные настройки. | |
"allowSyntheticDefaultImports": false, // Разрешить импортировать модули не имеющие внутри себя "import default"? | |
"allowUnreachableCode": false, // Сообщить об ошибке в случае обнаружения кода, который никогда не будет выполнен? | |
"allowUnusedLabels": false, // Не создавать сообщений об ошибках, если в коде найдены неиспользуемые метки label? | |
"allowUmdGlobalAccess": false, // TODO | |
"assumeChangesOnlyAffectDirectDependencies": false, // TODO | |
"charset": "utf8", // Кодировка входных файлов. | |
"declaration": false, // Создавать ли соответствующие файлы ".d.ts"? | |
"declarationDir": ".", // Путь до папки, в которую будут записаны созданные соответствующие файлы ".d.ts". | |
"declarationMap": false, // TODO | |
"diagnostics": false, // Показывать ли диагностическую информацию? | |
"disableSizeLimit": false, // Отключить ограничение размера в проекте JavaScript. | |
"emitBOM": false, // Записывать ли UTF-8 Byte Order Mark (BOM) в начало итогового файла? | |
"emitDeclarationOnly": false, // TODO | |
"emitDecoratorMetadata": false, // Создавать метаданные для объявлений декораторов в исходном коде? | |
"esModuleInterop": false, // Создать хелперы __importStar и __importDefault для обеспечения совместимости с экосистемой Babel и включить allowSyntheticDefaultImports для совместимости с системой типов. | |
"experimentalDecorators": false, // Включить экспериментальную поддержку декораторов EcmaScript? | |
"extendedDiagnostics": false, // TODO | |
"forceConsistentCasingInFileNames": false, // Запретить несогласованные ссылки на один и тот же файл? | |
"inlineSources": false, // Помещать ли source в итоговый файл рядом с source map? | |
"inlineSourceMap": false, // Помещать ли source map в итоговый файл, вместо того чтобы иметь отдельный файл с source map? | |
"isolatedModules": false, // Обрабатывать каждый файл, как отдельный изолированный модуль. | |
"listFiles": false, // Печатать ли имена файлов при компиляции? | |
"listEmittedFiles": false, // Печатать список всех выходных файлов при компиляции. Требуется TypeScript версии 2.0 или новее. | |
"mapRoot": ".", // Путь до папки, в которой дебаггер браузера должен будет искать файлы с source map. | |
"maxNodeModuleJsDepth": 0, // Максимальная глубина поиска зависимостей внутри node_modules и загрузки файлов JavaScript. Применяется только вместе с заданной опцией "allowJs". | |
"moduleResolution": "classic", // Определить способ поиска модулей в папках: как в Node.js или классический, как в TypeScript 1.5 и ниже. | |
"newLine": "CRLF", // Определяет тип завершения строк в итоговом файле. | |
"noEmit": false, // Не создавать итоговый файл. | |
"noFallthroughCasesInSwitch": false, // Сообщить об ошибке в случае обнаружения проваливания в конструкции switch-case? | |
"noImplicitAny": false, // Показывать ошибку, если где-то задан тип "any". | |
"noImplicitThis": false, // Показывать ошибку на "this", если где-то задан тип "any". | |
"noImplicitReturns": false, // Сообщить об ошибке, когда не все пути кода в функции возвращают значение? | |
"noLib": false, // Не использовать стандартный библиотечный файл по умолчанию (lib.d.ts). | |
"noResolve": false, // Не добавлять "/// <reference path="..." />" в список скомпилированных файлов. | |
"noStrictGenericChecks": false, // Отключить строгую проверку типов джинериков в типах функций? | |
"plugins": [], // Список плагинов для сервера языка TypeScript для загрузки. Требуется TypeScript версии 2.3 или новее. | |
"preserveConstEnums": false, // Не удалять объявления const enum из итогового файла. | |
"preserveSymlinks": false, // Не заменять символические ссылки на их реальный путь, обрабатывать символический файл как реальный. | |
"sourceRoot": ".", // Путь до папки, в которой дебаггер должен искать исходные source файлы. | |
"skipLibCheck": false, // Не проверять типы, заданные во всех файлах описания типов (*.d.ts)? | |
"skipDefaultLibCheck": false, // Пропустить проверку типов из стандартной библиотеки по умолчанию? | |
"suppressExcessPropertyErrors": false, // Подавлять избыточные проверки свойств для объектных литералов? | |
"suppressImplicitAnyIndexErrors": false, // Подавлять "noImplicitAny" ошибки для индексирования объектов, не имеющих индексных подписей. | |
"stripInternal": false, // Не создавать объявления для кода, который имеет аннотацию JSDoc /** @internal */. | |
"strictFunctionTypes": false, // Отключить проверку бивариантных параметров для типов функций. | |
"strictPropertyInitialization": false, // Убедитесь, что свойства класса, имеющие значения undefined, получают новые значения внутри конструктора. | |
"traceResolution": false // Выводить в логи сообщения о нахождении путей до модулей. | |
}, | |
"files": [ | |
// Список относительных или абсолютных путей до конкретных исходных файлов, которые обязательно надо скомпилировать. | |
// Если секция "files" не указана, то компилятор по умолчанию включает все файлы с расширением *.ts и *.tsx, которые находятся в корневой папке и внутренних подпапках проекта. | |
// Если секция "files" указана, то скомпилируются файлы, которые в ней перечислены. | |
// Все файлы, на которые есть ссылки в файлах из секции "files", также скомпилируются. | |
"core.ts", | |
"app.ts" | |
], | |
// Вместе с компиляцией только конкретных исходных файлов можно компилировать только файлы в заданных папках, которые будут найдены через регулярные выражения, которые принимают только следующие значения: | |
// - букву или цифру; | |
// - * - ноль или более любых символов, не включая разделители директорий "/" и "\"; | |
// - ? - один любой символ, не включая разделители директорий "/" и "\"; | |
// - **/ - рекурсивно включить любую подпапку. | |
// Если путь до папки заканчивается так "*" или так ".*", тогда в ней будут скомплированы все файлы с расширениями .ts, .tsx, .d.ts, а также .js и .jsx, если опция "allowJs" будет равна true. | |
"include": [ | |
// Секция "include" позволяет скомпилировать все файлы, находящиеся в заданных папках. | |
// Если секция "files" и секция "include" заданы вместе, то будут скомпилированы только файлы, перечисленные в обеих секциях. | |
// Все файлы, на которые есть ссылки во включенных файлах из секции "files" и секции "include", также скомпилируются. | |
"src/**/*" | |
], | |
"exclude": [ | |
// Секция "exclude" позволяет исключить при компиляции определенные файлы, которые находятся в заданных папках секции "include" или в папках всего проекта, если секция "include" не задана. | |
// Компилятор не будет учитывать перечисленные в секции "exclude" файлы TypeScript, которые находятся в папках из секции "include". | |
// Однако файлы, заданные в секции "files" будут обязательно скомпилированы. | |
// Если секция "exclude" не указана, то по умолчанию будут исключаться из компиляции все файлы из папок: | |
// - node_modules, | |
// - bower_components, | |
// - jspm_packages, | |
// - файлы из папки, указанной в опции компилятора "outDir". | |
"src/**/*.spec.ts", | |
"node_modules" | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment