Angular 10 : Import using module alias not resolved/Path Mapping not recognised in VSCode

标签 angular typescript visual-studio-code

因此,我将 Angular 8.2(项目模板)中的项目更新到版本 10,并按照 https://update.angular.io/ 中的说明进行操作。一切都很好,但是当实现路径映射时,痛苦开始了,我到处都是这个错误:

Cannot find module '@environments/environment' or its corresponding type declarations.ts(2307)
此错误适用于 @环境 @模块 ,在路径中声明,其他没有显示任何错误,因为它们没有被使用。
现在,使用 时项目正在正确构建构建 ,没试过 ng build --prod ,没有出现错误,但 Visual Studio 代码 (v1.46.1) 正在向我展示有错误的导入,这就是我有:
src/tsconfig.json
{
  "files": [],
  "references": [
    {
      "path": "./tsconfig.app.json"
    },
    {
      "path": "./e2e/tsconfig.json"
    }
  ]
}
src/tsconfig.app.json
{
  "extends": "./tsconfig.base.json",
  "compilerOptions": {
    "outDir": "./lw/app",
    "types": []
  },
  "files": ["src/main.ts", "src/polyfills.ts"],
  "include": ["src/**/*.d.ts"],
  "exclude": ["src/test.ts", "src/**/*.spec.ts"]
}
src/tsconfig.base.json
{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "src",
    "outDir": "./dist/lw",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "es2020",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "emitDecoratorMetadata": true,
    "noImplicitAny": false,
    "typeRoots": ["node_modules/@types"],
    "lib": ["es2018", "dom"],
    "paths": {
      "@angular/*": ["./node_modules/@angular/*"],
      "@assets/*": ["assets/*"],
      "@environments/*": ["environments/*"],
      "@api/*": ["app/api/*"],
      "@components/*": ["app/components/*"],
      "@login/*": ["app/login/*"],
      "@models/*": ["app/models/*"],
      "@pages/*": ["app/pages/*"],
      "@services/*": ["app/services/*"],
      "@shared/*": ["app/shared/*"]
    }
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictTemplates": true,
    "strictInjectionParameters": true
  }
}
注意:已尝试使用 "baseUrl": "src"和 "baseUrl": "./src"和 "baseUrl": "./"并且没有任何变化。
构建结果

$ ng build
Generating ES5 bundles for differential loading...
ES5 bundle generation complete.

chunk {polyfills} polyfills-es2015.js, polyfills-es2015.js.map (polyfills) 141 kB [initial] [rendered]
chunk {polyfills-es5} polyfills-es5.js, polyfills-es5.js.map (polyfills-es5) 656 kB [initial] [rendered]
chunk {main} main-es2015.js, main-es2015.js.map (main) 12.2 kB [initial] [rendered]
chunk {main} main-es5.js, main-es5.js.map (main) 14.8 kB [initial] [rendered]
chunk {main} main-es2015.js, main-es2015.js.map (main) 12.2 kB [initial] [rendered]
chunk {main} main-es5.js, main-es5.js.map (main) 14.8 kB [initial] [rendered]
chunk {styles} styles-es2015.js, styles-es2015.js.map (styles) 928 kB [initial] [rendered]
chunk {styles} styles-es5.js, styles-es5.js.map (styles) 930 kB [initial] [rendered]
chunk {runtime} runtime-es2015.js, runtime-es2015.js.map (runtime) 6.16 kB [entry] [rendered]
chunk {runtime} runtime-es5.js, runtime-es5.js.map (runtime) 6.16 kB [entry] [rendered]
chunk {vendor} vendor-es2015.js, vendor-es2015.js.map (vendor) 2.16 MB [initial] [rendered]
chunk {vendor} vendor-es5.js, vendor-es5.js.map (vendor) 2.51 MB [initial] [rendered]
chunk {scripts} scripts.js, scripts.js.map (scripts) 167 kB [entry] [rendered]
Date: 2020-07-03T02:50:44.017Z - Hash: aa2180f982b4b754ebb6 - Time: 8621ms

VSCode 信息
Version: 1.46.1 (user setup)
Commit: cd9ea6488829f560dc949a8b2fb789f3cdc05f5d
Date: 2020-06-17T21:13:20.174Z
Electron: 7.3.1
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT x64 10.0.18363
Angular CLI
     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 10.0.1
Node: 12.18.1
OS: win32 x64

Angular: 10.0.2
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.1000.1
@angular-devkit/build-angular     0.1000.1
@angular-devkit/build-optimizer   0.1000.1
@angular-devkit/build-webpack     0.1000.1
@angular-devkit/core              10.0.1
@angular-devkit/schematics        10.0.1
@angular/cli                      10.0.1
@ngtools/webpack                  10.0.1
@schematics/angular               10.0.1
@schematics/update                0.1000.1
rxjs                              6.5.5
typescript                        3.9.6
webpack                           4.43.0
这里还有一张我的项目是如何组织的图片
enter image description here
另外发生的一件非常奇怪的事情是,例如我有 2 个服务(我在每个服务中都有问题)一个 城市服务 (正在使用)和色彩服务 (未使用),城市服务 没有显示任何错误,我可以访问模块定义 (F12),但在 中色彩服务 具有相同结构的问题出现并以红色显示。
enter image description here
enter image description here

最佳答案

我已经通过以下更改解决了这个问题。

  • 复制来自 tsconfig.base.json 的所有代码或 tsconfig.app.jsontsconfig.json归档并删除 tsconfig.base.jsontsconfig.app.json .
  • 更改tsconfig.app.json的路径或 tsconfig.base.json延伸至
     {
     "extends": "../tsconfig.json" 
     ...
     }
    

  • 下面是tsconfig.json的代码文件。
    {
      "compileOnSave": false,
      "compilerOptions": {
        "baseUrl": "./",
        "downlevelIteration": true,
        "module": "es2020",
        "outDir": "./dist/out-tsc",
        "sourceMap": true,
        "declaration": false,
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "target": "es2015",
        "strict": false,
        "typeRoots": [
          "node_modules/@types"
        ],
        "lib": [
          "es2017",
          "dom"
        ],
        "paths": {
          "@app-models": [
            "src/app/model/index"
          ],     
          "@app-core": [
            "src/app/core/index"
          ],
          "@app-shared": [
            "src/app/shared/index"
          ]
        }
      }
    }
    

  • A) 如果你有一个活跃的 ng serve,重启 ng serve
    CTRL + C
    ng serve
    
    B)如果您没有有效的 ng 服务,请执行以下操作:
    Command + Shift + P
    Search for "TypeScript: Restart TS Server"
    Hit enter
    

    关于 Angular 10 : Import using module alias not resolved/Path Mapping not recognised in VSCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62707968/

    相关文章:

    javascript - onload img 删除父 div 的类

    html - 使用 Angular 的动态 UI

    javascript - 对象 typescript/ionic 3 的接口(interface)

    javascript - Cypress 调用不执行隐藏元素交互的 "show"方法

    visual-studio-code - 如何在VSC终端创建文件?

    angular - github1s.com 是否安全?我们可以将它用于私有(private) repo 吗?

    angular - 如何在 Angular2 中的模块加载时实例化单例服务

    css - angular2 : how to manually add css files by condition to index. html?

    javascript - writestream 完成后如何返回 promise ?

    c++ - Visual Studio Code 无法启动 MATLAB