我有一个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 /主/ web应用&#39 ;. ' 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
之外使用导致dir的符号链接?
我正在尝试的所有垃圾的完整配置:
{
"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"
]
}
答案 0 :(得分:0)
我认为preserveSymlinks
编译器选项可以为您提供帮助:
请勿将符号链接解析为其真实路径;将符号链接文件视为真实文件。
https://www.typescriptlang.org/docs/handbook/compiler-options.html
示例:
{
"compilerOptions": {
"preserveSymlinks": true
}
}