【问题标题】:what is the purpose of these angular2 imports?这些 angular2 进口的目的是什么?
【发布时间】:2016-02-21 22:29:20
【问题描述】:

我是 angular2 的新手,想知道我们在 angular2 应用程序中执行导入的目的。

<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/systemjs/dist/system-polyfills.js"></script>
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="node_modules/angular2/bundles/http.dev.js"></script>

所以我对这些进口的问题是:

  • 这些导入有什么用?
  • 这些导入的顺序是否合适?
  • 还有其他我们必须注意的有用导入吗?

提前致谢。

【问题讨论】:

    标签: import angular


    【解决方案1】:

    我在您的代码示例中没有看到任何 导入。它只是将各种库的文件包含到网页中。如果您一一阅读其中的一些:

    • es6-shim.min.js - 为浏览器添加 ES6 语言功能 (full list)
    • Rx.js 添加 Observables 库 (GitHub RxJS)
    • http.dev.js - 添加 angular2 $http 模块来发出请求

    因此,您可以在 Google 上搜索每个名称并自行确定是否适用于您的项目。

    更多关于 modules 和 ES2015/ES6 中的实际 imports 你可以在这里阅读 https://ponyfoo.com/articles/es6-modules-in-depth 例如。

    “我们必须注意的有用导入?”

    完全取决于您的需求。我假设 angular2.dev.js 和 http.dev.js 是一个很好的开始。

    “这些导入的顺序重要吗?”

    不是现在,但前提是您使用正确的模块系统,以便浏览器可以在执行依赖于它们的块之前加载缺失的部分。并且加载器文件(system.js/require.js)应该在所有其他文件之前的第一个。

    【讨论】:

    • system.js 必须在 angular 文件之前导入,否则角度会混淆从何处绑定导入 ans throws error system.js in not defined。
    • @PardeepJain,这就是我所暗示的“......而且加载程序文件(system.js/require.js)应该在所有其他文件之前的第一个。”
    【解决方案2】:

    以下是您在脚本元素中指定的详细信息:

    • 如果您使用 TypeScript 并配置了 ES5 输出,则不需要前两个文件。
    • angular2-polyfills.js - 包含 ZoneJS(用于触发更改检测 - 请参阅 What is the Angular2 equivalent to an AngularJS $watch?)和 reflect-metadata(用于设置来自装饰器的对象的元数据)
    • system.src.js - SystemJS,管理模块的库。总之,当你在 TypeScript 中使用 import 和 export 时,相应的编译代码依赖它。
    • Rx.js - RxJS,一个提供响应式编程概念实现的库。简而言之,它提供了 observables 及其操作符的 implementationArion。 EventEmitters,HTTP 依赖于此。
    • angular2.dev.js - Angular2 核心包
    • http.dev.js - Angular2 的 HTTP 支持

    【讨论】:

    • 这是一个很好的答案。也许您可以告诉我为什么 Angular.io 5 分钟快速入门将 zonejs 和 reflect-metadata 列为 package.json 中的依赖项,而 angular2-polyfill 似乎可以这样做?
    猜你喜欢
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 2017-10-09
    • 2020-03-17
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    相关资源
    最近更新 更多