我怀疑 tsconfig.json 的继承功能并不完全有效。而且 "typeRoots" 设置可能没有被正确或完全地继承。
如果我在我的web.site文件夹中运行tsc命令,它会找到typings并成功编译。这可能是因为它正确使用了typeRoots设置。
如果我在我的tests文件夹中运行tsc命令,它无法找到任何typings并且编译失败。您可以假设错误只是未能找到应该在“typings”文件夹中找到的声明引用。
我可以将同一文件从测试(失败)复制到根web.site,然后它就可以成功编译。
显然,它没有正确使用tsconfig.json,因为根据我设置的继承,它应该通过继承的typeRoots设置找到typings。 但是没有。
我应该忽略继承作为一种半成品并针对此使用单独的tsconfigs吗?
在web.site/tsconfig.json中:
http://www.typescriptlang.org/docs/handbook/tsconfig-json.html
(以下是文件夹结构)
web.site -> tsconfig.json
- typings
- node_modules
- scripts
- ts
- tests
- ts -> tsconfig.json (this tsconfig extends/inherits web.site - see contents below)
如果我在我的web.site文件夹中运行tsc命令,它会找到typings并成功编译。这可能是因为它正确使用了typeRoots设置。
如果我在我的tests文件夹中运行tsc命令,它无法找到任何typings并且编译失败。您可以假设错误只是未能找到应该在“typings”文件夹中找到的声明引用。
我可以将同一文件从测试(失败)复制到根web.site,然后它就可以成功编译。
显然,它没有正确使用tsconfig.json,因为根据我设置的继承,它应该通过继承的typeRoots设置找到typings。 但是没有。
我应该忽略继承作为一种半成品并针对此使用单独的tsconfigs吗?
在web.site/tsconfig.json中:
{
"compileOnSave": true,
"compilerOptions": {
"listFiles": true,
"removeComments": true,
"sourceMap": true,
"module": "es6",
"moduleResolution": "classic",
"outDir": "scripts/js",
"typeRoots": [
"node_modules/@types",
"typings"
]
},
"include":[
"scripts/ts/**/*"
]
}
在 tests/tsconfig.json 中:{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "js",
"removeComments": false
},
"include": [
"ts/**/*"
]
}
tsconfig.json
中添加了typeRoots
,并且在路径上加上../..
,会有什么效果? - cartantextends
,但我的用例非常简单,我不记得详细阅读文档了。 - cartant