繁体   English   中英

@角度指向正确的node_module

[英]@angular point to the correct node_module

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

我一直在寻找这样的东西:“ @angugular”:“ ./nodes_module/@angular”,但是还没有发现。

如果有任何意义,我在Mac OS上使用Angular 5。

谢谢

这不是Angular特有的。 这是一个Typescript配置。

如果您查看tsconfig.json (如果使用的是CLI, tsconfig.json tsconfig.app.json ),则应该看到moduleResolution属性:

"moduleResolution": "node",

“节点”模式意味着Typescript编译器将像Node.JS一样尝试解析模块,这意味着node_modules将始终是模块解析的根。 可以通过绝对路径以这种方式通过绝对路径导入node_modules任何内容-假设软件包的Typescript定义文件位于其根路径中,这意味着仅通过引用文件夹名称就可以导入该文件。 这里有一些很好的文档

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

另一个tsconfig.json的打字稿编译器用来查找模块或出口属性是baseUrl属性。 在此处设置内容将允许编译器将该路径视为绝对路径(例如:在Angular应用中将baseUrl设置为"src"将允许您绝对从中导入内容,因此请import { Thing } from ../../../services/thing可以import { Thing } from app/services/thing 。)

您还可以向编译器传递一个paths对象,该对象将相对于baseUrl向模块添加其他路径映射。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM