#json #typescript #tsc #tsconfig
#json #typescript #tsc #tsconfig
Вопрос:
Всем привет!
Я работаю над небольшим проектом с TypeScript, который требует, чтобы у меня было два разных tsconfig.json
файла, которые оба наследуются от моего tsconfig.base.json
файла.
Я столкнулся с проблемой компилятора, создающего вложенные папки в моем объявленном outDir
, что отчасти сводит меня с ума.
Вот мой tsconfig.base.json
файл:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"resolveJsonModule": true,
"lib": ["es6", "dom"],
"esModuleInterop": true,
},
"exclude": [
"node_modules"
]
}
и вот как выглядит производный tsconfig.src.json
:
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"rootDirs": ["./src/ts", "."],
"outDir": "./src/js/"
},
"exclude": [
"page/**/*.ts",
"tsconfig.page.json"
],
"include": [
"src/**/*.ts",
"service_account.json"
],
}
Моя текущая структура проекта выглядит следующим образом:
.
-- node_modules/
-- src/
| -- js/ (this is where my typescript files should be compiled to)
| -- ts/ (this is where all my ts files are located)
-- tsconfig.base.json
-- tsconfig.src.json
-- service_account.json
Теперь, если я запускаю свой build:backend
скрипт ( "build:backend": "tsc -p ./tsconfig.source.json"
), компилятор создает две вложенные папки, что придает структуре моего проекта следующий вид:
.
-- node_modules/
-- src/
| -- js/ (this is where my typescript files should be compiled to)
| -- src/
| -- ts/ (here are all compiled js files now)
| -- ts/ (this is where all my ts files are located)
-- tsconfig.base.json
-- tsconfig.src.json
-- service_account.json
У кого-нибудь есть идея, что вызывает эту проблему?
Я благодарен за любую помощь! Заранее спасибо, ребята!
Ответ №1:
Вам нужно объединить все inputs
в одну папку и все outputs
в папку, которая не включена в inputs
папку.
Пример исправления
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"rootDir": "/src/ts",
"outDir": "./src/js"
},
"exclude": [
"page/**/*.ts",
"tsconfig.page.json"
]
}
И также перемещать service_account.json
в src/ts
.