Angular @指向正确节点模块的角度点

Angular @指向正确节点模块的角度点,angular,Angular,我正在浏览各种angular 5文件,试图找出“@angular”如何指向正确的node_modules文件夹,然后在导入时指向该文件夹中的正确子模块(即路由器)。如果您愿意,似乎没有一个文件明确定义@angular“app”名称的配置路径 我一直在寻找类似这样的东西:“@angugular”:“/nodes\u module/@angular”,但还没有发现它 我在Mac OS上使用Angular 5,如果这有什么意义的话 谢谢这不是特定于Angular的东西。这是一种类型脚本配置 如果查看t

我正在浏览各种angular 5文件,试图找出“@angular”如何指向正确的node_modules文件夹,然后在导入时指向该文件夹中的正确子模块(即路由器)。如果您愿意,似乎没有一个文件明确定义@angular“app”名称的配置路径

我一直在寻找类似这样的东西:“@angugular”:“/nodes\u module/@angular”,但还没有发现它

我在Mac OS上使用Angular 5,如果这有什么意义的话


谢谢

这不是特定于Angular的东西。这是一种类型脚本配置

如果查看
tsconfig.json
tsconfig.app.json
如果使用CLI),应该会看到
moduleResolution
属性:

"moduleResolution": "node",
“node”模式意味着Typescript编译器将尝试解析模块,就像node.JS一样,这意味着
node_modules
将始终是模块解析的根。通过这种方式,
node\u modules
中的任何内容都可以通过绝对路径导入——假设包的Typescript定义文件位于其根路径中,这意味着只需引用文件夹名称即可导入。这方面有一些很好的文档

@angular以模块化方式在子文件夹中生成其Typescript定义文件,因此您需要引用该文件的文件夹路径(例如
@angular/core

Typescript编译器用于查找模块或导出的另一个属性是
baseUrl
属性。在此处设置某些内容将允许编译器将该路径视为绝对路径(例如:在Angular应用程序中将
baseUrl
设置为
“src”
将允许您从该路径绝对导入内容,因此
import{Thing}from../../../services/Thing
可以成为
import{Thing}from app/services/Thing


您还可以向编译器传递一个
路径
对象,该对象将向模块添加额外的路径映射,相对于
基本URL

为什么您需要知道它?我有一个应用程序,我想按名称导入,而不是按其节点模块路径名导入