TypScript outDir в tsconfig.json не работает
Кажется, я не могу outDir
флаг outDir
работать в package.json
. Структура каталогов довольно проста: tsconfig.json
на корневом уровне, вместе с каталогом src/
и одним файлом index.ts и другими каталогами, представляющими другие модули.
При запуске команды tsc
в индексном файле создается новый, а не в каталоге сборки. Что я делаю неправильно?
Мой tsconfig:
{
"compilerOptions": {
"outDir": "build"
}
}
Мой скрипт сборки npm:
"build": "tsc src/index.ts"
Я вызываю скрипт из корневого каталога проекта. Интересно, что запуск того же скрипта с флагом --outDir
работает отлично.
Ответы
Ответ 1
Когда вы передаете файлы для компиляции с помощью tsc src/index.ts
, ваш tsconfig.json
игнорируется.
Из документации:
Когда входные файлы указаны в командной строке, файлы tsconfig.json игнорируются.
Ваш скрипт сборки npm должен быть только tsc
без передачи каких-либо файлов.
Ответ 2
Это моя структура папок.
Храните файлы машинописных файлов в папке src и держите tsconfig.json в корне.
В файле tsconfig json добавьте имя папки для outDir в compilerOptions
"compilerOptions": {
"outDir": "build",
"module": "commonjs",
"target": "es6",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"noImplicitAny": true,
"sourceMap": true
},
и выполните приведенные ниже команды.
просто cd в корневую папку и введите
TSC
или же
tsc --outDir.
который будет создавать папку outDir с файлами js и map.js.
Источник: https://github.com/Microsoft/TypeScript/issues/10585
Ответ 3
Если вы используете параметр компилятора incremental
, возможно, вы не получите вывод, если вы удалили/изменили файлы в outDir
, но не удалили файл .tsbuildinfo
.
Моя проблема была немного другой, но Google привел меня сюда - так что, возможно, другие тоже.
Ответ 4
Вам нужно указать местоположение файла tsconfig вместо файла, который вы хотите создать.
tsc --build mocks/tsconfig.json