tsconfig.json 被 Visual Studio 代码忽略

tsconfig.json ignored by Visual Studio Code

我的项目根目录下有一个 tsconfig.json 文件:

{
  "compilerOptions": {
    "target": "ES5",
    "module": "commonjs",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "noEmitHelpers": true,
    "baseUrl": ".",
    "paths": {
      "services/*": ["./src/app/shared/services/*"]
    }
  },
  "compileOnSave": false,
  "buildOnSave": false,
  "awesomeTypescriptLoaderOptions": {
    "forkChecker": true,
    "useWebpackText": true
  }
}

我正在尝试定义我的路径,这样我们就不需要在项目中使用相对路径。

例如:

我正在尝试让 import { ConfigService } from 'services/config'; 工作,而不是必须键入:

import { ConfigService } from '../../shared/services/config/';

但是当我尝试这个时,我在 webpack 中不断收到错误。

看起来它只是试图查看 /node_nodules 而忽略 tsconfig.json?我说得对吗?

我真的不知道我做错了什么。谷歌搜索了几个多小时,快要疯了。

如有任何帮助,我们将不胜感激。

注意:实际上,你是对的,Webpack 不知道 tsconfig 文件,并尝试以自己的方式解析模块。为了将它与 tsconfig 一起使用,您需要一个 TsConfigPathsPlugin 插件。请参阅 github 上的 issue

我认为您的路径 属性 设置不正确。你需要告诉打字稿是这样的:

对于匹配模式 "services/" 的导入,将以下路径附加到 导入(假设你的根目录是 src 之前的目录)“/src/app/shared/”

"paths": {
  "services/*": ["/src/app/shared/*"]
}

因此,当编译器到达您的 "services/config" 导入时,它将匹配模式,然后创建此路径 "root/src/app/shared/services/config" 以尝试解决它。

查阅打字稿 module resolution 文档了解更多详情。