关于 angular4 项目中的 import {**} from @app/*

Chi*_*iYu 2 tsconfig angular

我在 Angular 项目中遇到了一个奇怪的现象。

\n\n

我的项目是从命令行自动生成的(ng new myproject)

\n\n

在项目中,目录\xef\xbc\x9a

\n\n
    \n
  • 应用程序\n\n
      \n
    • 共享\n\n
        \n
      • 常见\n\n
          \n
        • 应用程序组件库.ts
        • \n
      • \n
      • 会话\n\n
          \n
        • 应用程序会话.service
        • \n
      • \n
    • \n
  • \n
\n\n

应用程序组件基.ts

\n\n
import { AppSessionService } from \'@shared/session/app-session.service\';\n
Run Code Online (Sandbox Code Playgroud)\n\n

tsconfig.app.json:

\n\n
"paths": {\n    "@abp/*": [ "../node_modules/abp-ng2-module/src/*" ],\n    "@app/*": [ "./app/*" ],\n    "@shared/*": [ "./app/shared/*" ],\n    "@node_modules/*": [ "../node_modules/*" ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

vscode显示错误(不影响正常运行,但无法导航到该类)\xef\xbc\x9a

\n\n
[ts] Cannot find module \'@shared/session/app-session.service\'.\n
Run Code Online (Sandbox Code Playgroud)\n\n

我是否有任何配置错误?\n谢谢!

\n\n

我知道可能是这样,但我想使用通用符号\xef\xbc\x9a

\n\n
import { AppSessionService } from \'../session/app-session.service\';\n\n\n\n@angular/cli: 1.4.2\nnode: 6.10.2\nos: win32 x64\n@angular/animations: 4.4.2\n@angular/common: 4.4.2\n@angular/compiler: 4.4.2\n@angular/core: 4.4.2\n@angular/forms: 4.4.2\n@angular/http: 4.4.2\n@angular/platform-browser: 4.4.2\n@angular/platform-browser-dynamic: 4.4.2\n@angular/router: 4.4.2\n@angular/cli: 1.4.2\n@angular/compiler-cli: 4.4.2\ntypescript: 2.5.2\n
Run Code Online (Sandbox Code Playgroud)\n

小智 5

我注意到一些事情。一,您的“路径”设置应该放在 tsconfig.json 而不是 tsconfig.app.json 中。其次,我的路径如下所示:

"paths": {
  "@app/*": ["app/*"],
  "@env/*": ["environments/*"]
},
Run Code Online (Sandbox Code Playgroud)