[英]VSCode / tslint does not resolve paths in tsconfig.json
vscode 以某种方式不尊重我的 tsconfig.json(几个星期以来,它已经不同了。无论是我的错误还是 vscode 更新......)
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@foo-animation/*": [
"src/app/animation/*"
],
...
分别在问题选项卡中:
找不到模块“@foo-animation/animation-micro”或其相应的类型声明。 ts(2307)
✓常规基本路径(如@angular/core
)已正确解决,只有我的“自定义”路径才是问题...
✓编译、构建、运行......一切都像魅力一样。 所以我相信从角度/打字稿的角度来看一切都很好。 (另外,我使用 IntelliJ 的开发人员没有问题......)所以它似乎归结为“告诉 vscode 关于它”......:-/
我的tsconfig.json
位于项目的根文件夹中。 唯一的事情是,我使用了另一个tsconfig.app.json
,其中包括tsconfig.json
。
那么有没有办法告诉 vscode 在哪里寻找它的 tsconfig.json (鼓励解析这些路径)?
This SO question和this VSCode github issue可能相关,但我仍然不知道该怎么做。
我最近在设置存储库时遇到了类似的问题,我认为将此行添加到您的 vscode settings.json 应该会有所帮助:
"tslint.configFile": "./tslint.json"
如果您的 tslint.json 不在根目录中,您应该添加自己的路径。
您可以使用typeRoots
和types
compileOptions。
typeRoots
本身告诉 tsc 在哪里可以找到类型定义。 见类型根
"typeRoots": [
"dirPath/@angular",
"node_modules/@types",
"node_modules/electron"
] /* List of folders to include type definitions from. */
使用types
告诉它是否有您想要解析的特定types
。 任何其他类型都将被忽略。 查看类型
"types": [
"animation-micro",
"jquery",
"node",
"react",
"prop-types",
"." //referencing types belonging to paths specified in typeRoots i.e. 'dirPath/@angular/.' , 'node_modules/@types/.' & 'node_modules/electron/.' - needed to resolve namespaces (dependencies)
],
注意:指定typeRoots
和types
compileOptions 将排除通常默认包含的类型,除非明确包含。
根据您的运行时设置和要求,其他有用的替代方法可能是使用rootDirs
compileOption。
rootDirs
允许您将所有内容几乎视为 Java 中的“Über jar”(所有内容都在一个地方可用的想法)。 见根目录
"rootDirs": [
"/ts/",
"/js/",
"src/main/resources/static/ts",
"src/main/resources/static/js"
],/* List of root folders whose combined content represents the structure of the project at runtime. */
根据您的用例,您甚至可能不再需要使用这两个tsconfig
文件。
另请注意,使用extends
覆盖引用的tsconfig
设置,因此请注意不要意外覆盖某些路径。 这也可能导致问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.