У меня есть эта настройка проекта TypeScript 2.0.3:
src/main/webapp/tsconfig.json
src/main/webapp/app -- contains .ts files
src/main/webapp/app/tsModels -- a symlink to ../../../../target/tsModels
target/tsModels/ -- contains .ts files
Цель состоит в том, чтобы target/tsModels
скомпилировать файлы .ts.
Сначала с "rootDir": "."
пожаловался tsc
:
ошибка TS6059: файл '[...]/target/tsModels/AboutWindupModel.ts' не находится в 'rootDir' '[...]/src/main/webapp'. Ожидается, что «rootDir» будет содержать все исходные файлы.
Так что я попытался
{
"compilerOptions": { ...,
//"rootDir": ".",
"rootDirs": [".", "../../../target/tsModels"],
},
}
Все такой же. Пытался:
{
"compilerOptions": {
//"rootDir": ".",
"rootDirs": [".", "../../../target/tsModels"],
},
"exclude": [
"node_modules",
"target/**",
"../../../target/**",
"../../../target/**/*",
"../../../target/tsModels/*",
"typings/main",
"typings/main.d.ts"
]
}
Но все еще получаю эту ошибку.
Таким образом, кажется, что tsc
не может правильно обрабатывать символические ссылки, всегда проверяет канонический путь.
Итак, я подумал, хорошо, давайте скомпилируем файлы tsModels
напрямую. Поэтому я удалил символическую ссылку и попробовал:
"compilerOptions": {
//"rootDir": ".",
"rootDirs": [".", "../../../target/tsModels"],
},
Но на самом деле это не компилирует файлы в каталоге tsModels
.
Я даже пробовал
"rootDirs": "../../../target/tsModels",
но tsc
не скомпилировал это, вместо этого он скомпилировал .
. Он вообще этому подчиняется?
Что мне делать, чтобы скомпилировать файлы из обоих каталогов?
Есть ли способ использовать символическую ссылку, ведущую к каталогу за пределами rootDir
?
Полный конфиг со всем мусором, который я пробовал:
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
//"rootDir": ".",
//"rootDirs": [".", "../../../target/tsModels"],
"rootDirs": ["../../../target/tsModels"],
//"rootDir": "../../../target/tsModels",
"outDir": "../../../target/windup-web",
"sourceRoot": "/windup-web/"
},
"exclude": [
"node_modules",
//"target/**",
//"../../../target/**",
//"../../../target/**/*",
//"../../../target/tsModels/*",
//"target/tsModels/**",
"typings/main",
"typings/main.d.ts"
]
}