[英]Why does Typescript ignore my tsconfig.json inside Visual Studio Code?
我的项目设置是这样的
project/
|
+---src/
| |
| +---app/
| |
| sample.ts
|
+---typings/
+---tsconfig.json
这是我的tsconfig.json
{
"compilerOptions": {
"rootDir": "src",
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": true,
"sourceMap": true,
"noImplicitAny": false,
"outDir": "dist"
},
"exclude": [
"node_modules",
"src/assets",
"src/lib"
]
}
我想知道的是,为什么 VSC 会指示错误,例如
当显然完全没有错误时( "experimentalDecorators": true
在tsconfig.json
中设置),并且应用程序转译得很好? 而且它不仅仅是装饰器, Promise
等也被突出显示(我确保将tsconfig.json
放在与 typings 相同的文件夹中,并且我安装了typings
es6-shim
的 typings)。
不确定这是否重要,但我现在在typescript@2.0.0-dev.20160707
上。
当您使用比 VS Code 提供的更新版本的 TypeScript 时,VS Code 会忽略您的tsconfig.json
。
您正在使用 TypeScript 2.0.0-dev.20160707
,所以这可能是正在发生的事情。
首先,将 TypeScript 安装到您的node_modules
。 选择稳定或夜间。
npm install typescript --save-dev // stable
npm install typescript@next --save-dev // nightly
其次,将生成的lib
相对路径添加到settings.json
。 即通过文件>设置>用户settings.json
在VS Code中打开settings.json
,并添加以下属性。
{
"typescript.tsdk": "node_modules/typescript/lib"
}
请注意,如果全球的装机量打字稿( -g
),而不是到你的项目的node_modules
,然后调整typescript.tsdk
适当的位置。
第三,确保你有一个有效的tsconfig.json
。 这是一个例子。
{
"compileOnSave": false,
"compilerOptions": {
"sourceMap": true,
"target": "es5",
"experimentalDecorators": true,
"noImplicitAny": false
},
"exclude": [
"node_modules"
],
"filesGlob": [
"src/**/*.ts",
"test/**/*.ts",
"typings/index.d.ts"
]
}
VS Code 随附了最新的稳定版 TypeScript。 如果要使用较新版本的 TypeScript,可以定义 typescript.tsdk 设置(文件 > 首选项 > 用户/工作区设置),指向包含 TypeScript tsserver.js 和相应 lib.*.d.ts 文件的目录. 目录路径可以是绝对的,也可以是相对于工作区目录的。 通过使用相对路径,您可以轻松地与您的团队共享此工作区设置并使用最新的 TypeScript 版本 (npm install typescript@next)。 有关如何安装 TypeScript 的夜间版本的更多详细信息,请参阅此博客文章。 (强调)。
另请参阅: https : //blogs.msdn.microsoft.com/typescript/2016/01/28/annoucing-typescript-1-8-beta/
找到文件夹typescript
安装由npm
,于我而言,这是:
C:\Users\<username>\AppData\Roaming\npm\node_modules\typescript\\lib
在其他文件中,应该有:
lib.d.ts
tsserver.js
里面。 现在打开设置:
File -> Preferences -> User Settings/Workspace Settings
这应该打开一个文件settings.json
,添加:
{
"typescript.tsdk": "C:\\Users\\<username>\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib"
}
(注意双反斜杠\\\\
),保存并 - 重要 - 重新启动 Visual Studio Code。 享受。
就我而言,问题是我的 tsconfig.json 位置错误。 它在.vscode
文件夹中,但它应该上升一个级别。
当我点击右下角的 Typescript 版本时,我注意到了这一点,VSCode 菜单告诉我没有找到 tsconfig 文件并提示我创建一个。
我遇到了同样的错误,对我来说问题出在"include": [...]
选项,它设置不正确。(没有覆盖src
文件夹中的所有文件)
就我而言,问题是我正在编辑的.ts
文件未包含在tsconfig.json
。
我添加了一个新的scripts/build.ts
文件,在tsconfig.json
我有:
{
include: ["src/**/*.ts"]
}
不得不补充:
{
include: ["src/**/*.ts", "scripts/**/*.ts"]
}
确保您的项目中没有jsconfig.json
文件或任何其他覆盖配置文件。 这为我解决了问题!
有一个技巧您可能已经注意到,也可能没有注意到。 当你更改tsconfig时,VS Code 无法识别它,你必须重新启动 TypeScript 服务器。
当我将 7 个 React 应用程序合并到Turborepo monorepos 时,我遇到了类似的情况,当我对它们进行更改时, tsconfig/.eslintrc
无法实时反映这一事实,因此我构建了这个小扩展监视这些配置文件并自动重启 TypeScript/ESLint 服务器。 希望能帮助到你。
VS代码扩展:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.