我正在研究Angular 2文档。
很多地方,包括示例,Angular都被称为@angular
。
例如,在API页面上:
https://angular.io/docs/ts/latest/api/
@
有什么意义?它与Angular 2代码有任何关联吗?
答案 0 :(得分:29)
这是NPM存储库中作用域的名称
@angular
是范围名称和所有模块(core
,compiler
,common
,platform-...
,testing
,{{1} },...)在该范围内发布。
beta.x之后的Angular2版本,因此router
使用>= Angular2 RC.0
版本@angular
使用<= Angular2 beta.x
他们改变它的原因之一是他们认为angular2
中的2
用词不当。目前(2017年1月),我们处于Angular版本Angular2
,应该明确指出4.0.0-beta.1
没有意义。
答案 1 :(得分:10)
从Angular Git页面:
“所有软件包现在分布在@angular npm范围内。&gt;这会改变通过npm安装Angular的方式以及如何导入代码。”
从NPM文档页面:
“范围就像npm模块的命名空间。如果包的名称以@开头&gt;那么它是一个范围包。范围是&gt; @和斜杠之间的所有内容。”
希望这有帮助。
答案 2 :(得分:6)
@表示它是一个私有的npm包。只允许授权团队推送新版本,但可以公开下载。通过将其作为npm包发布,您可以将node用作应用程序的包管理器,并让节点管理与其他包和版本的依赖关系。很有用。
答案 3 :(得分:0)
我们以import { NgModule } from '@angular/core';
为例。
如果你看github source,@ angular只是一个文件夹名称。我们来看@ angular / core。里面是index.ts,它进一步导出./src/core,这意味着.src / core.ts,因为.ts扩展名是假定的。当您到./src/core.ts时,您会发现它导出.metadata。当你进入./metadata时,你会发现ngmodule.ts。这里面是@NgModule定义的!
答案 4 :(得分:-1)
这里没什么特别的,&#34; @&#34; character是区分node_modules文件夹中的@angular文件夹的方法,因为它是包含需要在您的环境中运行角度的所有模块的文件夹