Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular VSCode/tsconfig路径问题-文件被拉入,但我得到";找不到模块";在编辑部_Angular_Typescript_Visual Studio Code - Fatal编程技术网

Angular VSCode/tsconfig路径问题-文件被拉入,但我得到";找不到模块";在编辑部

Angular VSCode/tsconfig路径问题-文件被拉入,但我得到";找不到模块";在编辑部,angular,typescript,visual-studio-code,Angular,Typescript,Visual Studio Code,自从我不久前开始做这个项目以来,我一直有这个奇怪的问题。在我的各种角度组件/类等中,我使用import导入其他模块和文件。对于使用基本路径@符号的任何一个包,我在VSCode中得到一个错误(注意:@angular/core和其他包可以工作…问题只是路径)。奇怪的是,我可以编译和运行应用程序而没有任何问题。。。尽管有警告,所有导入都成功拉入 我只是忽略了这个问题一段时间,但它导致了一个非常不方便的问题。。。例如,如果我尝试转到某个导入模块中的对象的定义,VSC不会将我带到该文件,因为它似乎找不到它

自从我不久前开始做这个项目以来,我一直有这个奇怪的问题。在我的各种角度组件/类等中,我使用
import
导入其他模块和文件。对于使用基本路径
@
符号的任何一个包,我在VSCode中得到一个错误(注意:@angular/core和其他包可以工作…问题只是路径)。奇怪的是,我可以编译和运行应用程序而没有任何问题。。。尽管有警告,所有导入都成功拉入

我只是忽略了这个问题一段时间,但它导致了一个非常不方便的问题。。。例如,如果我尝试转到某个导入模块中的对象的定义,VSC不会将我带到该文件,因为它似乎找不到它

我的团队中的每个人在VSCode中使用完全相同的代码库(和相同的tsconfig文件),而没有遇到此问题。因此,Tconfig文件或代码库设置本身似乎没有问题,而是我的VSCode本身出了问题。我已经搜索了StackOverflow和其他地方寻找解决方案,但没有任何运气。如有任何建议,将不胜感激

导入示例(角度ts文件的顶部):

将鼠标悬停在任何带有路径快捷方式前缀的导入上时,会收到以下警告:

找不到模块'@middlemass.signing/dto/signing-action'或其相应的类型声明。

tsconfig.json:

{
    "compileOnSave": false,
    "compilerOptions": {
      "outDir": "./dist/out-tsc",
      "sourceMap": true,
      "declaration": false,
      "moduleResolution": "node",
      "emitDecoratorMetadata": true,
      "experimentalDecorators": true,
      "removeComments": false,
      "suppressImplicitAnyIndexErrors": true,
      "target": "es5",
      "resolveJsonModule": true,
      "allowSyntheticDefaultImports": true,
      "esModuleInterop": true,
      "typeRoots": [
        "node_modules/@types"
      ],
      "lib": [
        "es2017",
        "dom"
      ],
      "module": "es2015",
      "baseUrl": "./",
      "paths": {
        "@middlemass.sending/*": [
          "projects/middlemass-sending/src/*"
        ],
        "@middlemass.sending/shared/*": [
          "projects/middlemass-sending/src/shared/*"
        ],
        "@middlemass.sending/utils/*": [
          "projects/middlemass-sending/src/shared/utils*"
        ],
        "@middlemass.sending/services/*": [
          "projects/middlemass-sending/src/services/*"
        ],
        "@middlemass.sending/dto/*": [
          "projects/middlemass-sending/src/dto/*"
        ],
        "@middlemass.sending/env/*": [
          "projects/middlemass-sending/src/environments/*"
        ],
        "@middlemass.sending/styles/*": [
          "projects/middlemass-sending/src/scss/*"
        ],
        "@middlemass.sending/locale/*": [
          "projects/middlemass-sending/locale/*"
        ],
        "@middlemass.signing/locale/*": [
          "projects/middlemass-signing/locale/*"
        ],
        "@middlemass.signing/dto/*": [
          "projects/middlemass-signing/src/app/core/dto/*"
        ],
        "@middlemass.signing/services/*": [
          "projects/middlemass-signing/src/app/core/services/*"
        ],
        "@middlemass.signing/shared/*": [
          "projects/middlemass-signing/src/app/shared/*"
        ],
        "@middlemass.signing": [
          "projects/middlemass-signing/src"
        ],
        "@middlemass.signing/*": [
          "projects/middlemass-signing/src/*"
        ],
        "@middlemass.common": [
          "projects/middlemass-common/src"
        ],
        "@middlemass.common/*": [
          "projects/middlemass-common/src/*"
        ]
      }
    },
    "angularCompilerOptions": {
      "fullTemplateTypeCheck": true,
      "strictInjectionParameters": true,
      "preserveWhitespaces": false
    }
  }
  

因此,这并不是真正的VSCode或tsconfig问题。我不敢相信我从第一天起就错过了这个,但基本上这个代码库由一个根目录中的三个独立项目组成。每天,我的团队和我将一次处理三个项目中的一个,在进行开发时,我总是打开特定的项目目录。tsconfig文件存在于根目录中即使独立的项目有自己的tsconfig文件继承根目录,但没有在VSCode中打开根目录也是导致此问题的原因。

因此,基本上建立了代码库:

Projects Folder (root with the "master" tsconfig)
   --Project I (with its own tsconfig that extends the root tsconfig)
   --Project II (with its own tsconfig that extends the root tsconfig)
   --Project III (with its own tsconfig that extends the root tsconfig)
我只需要打开VSCode中的Projects文件夹,基本路径快捷方式就可以工作了。在我假设子项目文件夹有它们自己的从根扩展的tsconfig文件之前,只需在VSC中打开这些单独的文件夹就可以了,但事实并非如此。我必须打开包含主tsconfig文件的根文件夹

这样做的一个缺点是,在一个项目中搜索文件或代码可能会返回其他项目的结果。但是,您可以对VSC工作区设置进行一些修改以防止出现这种情况,例如:

"search.exclude": {
    "**/node_modules": true,
    "**/bower_components": true,
    "**/*.code-search": true,
    "**/projects/project1": true,
    "**/projects/project2": false
    "**/projects/project3": false
  }

使用此设置,如果您在project1中,则只能在project1中获得搜索结果。。。您可以为您正在从事的任何项目修改此模式。

因此,这实际上不是VSCode或tsconfig问题。我不敢相信我从第一天起就错过了这个,但基本上这个代码库由一个根目录中的三个独立项目组成。每天,我的团队和我将一次处理三个项目中的一个,在进行开发时,我总是打开特定的项目目录。tsconfig文件存在于根目录中即使独立的项目有自己的tsconfig文件继承根目录,但没有在VSCode中打开根目录也是导致此问题的原因。

因此,基本上建立了代码库:

Projects Folder (root with the "master" tsconfig)
   --Project I (with its own tsconfig that extends the root tsconfig)
   --Project II (with its own tsconfig that extends the root tsconfig)
   --Project III (with its own tsconfig that extends the root tsconfig)
我只需要打开VSCode中的Projects文件夹,基本路径快捷方式就可以工作了。在我假设子项目文件夹有它们自己的从根扩展的tsconfig文件之前,只需在VSC中打开这些单独的文件夹就可以了,但事实并非如此。我必须打开包含主tsconfig文件的根文件夹

这样做的一个缺点是,在一个项目中搜索文件或代码可能会返回其他项目的结果。但是,您可以对VSC工作区设置进行一些修改以防止出现这种情况,例如:

"search.exclude": {
    "**/node_modules": true,
    "**/bower_components": true,
    "**/*.code-search": true,
    "**/projects/project1": true,
    "**/projects/project2": false
    "**/projects/project3": false
  }

使用此设置,如果您在project1中,则只能在project1中获得搜索结果。。。您可以为您正在从事的任何项目修改此模式。

每个人都使用相同版本的VS代码吗?另外,您的VS代码是使用自己的typescript版本还是使用项目的typescript版本?要进行检查,当查看.ts文件时,屏幕右下角会显示您的TypeScript版本。单击它将允许您在与VS代码捆绑的版本和您的应用程序包含的版本之间进行更改。我以前在IDE中遇到过类似这样的奇怪警告。@cjd82187-谢谢您的回复!我还没有检查过这些,但我马上就要检查了。我很感激!每个人都使用相同版本的VS代码吗?另外,您的VS代码是使用自己的typescript版本还是使用项目的typescript版本?要进行检查,当查看.ts文件时,屏幕右下角会显示您的TypeScript版本。单击它将允许您在与VS代码捆绑的版本和您的应用程序包含的版本之间进行更改。我以前在IDE中遇到过类似这样的奇怪警告。@cjd82187-谢谢您的回复!我还没有检查过这些,但我马上就要检查了。我很感激!