【发布时间】:2016-10-18 23:48:54
【问题描述】:
我有一个 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"
]
}
【问题讨论】:
标签: typescript compilation symlink tsc