在Angular.json和组件中导入LIB之间的差异



我需要在我的Angular 7应用程序中导入jQuery,我注意到有两种做到这一点的方法。

  1. 导入 jquery.min.js 文件中的scripts属性 angular.json
  2. 使用import 'jquery';
  3. 从TS代码(例如在Main.TS或模块中(导入jQuery

这些方法有什么区别?

  1. 使脚本全局(就像在index.html中放置脚本标签(

  2. 使用模块,避免了全局范围污染,并让WebPack之类的工具优化了捆绑过程,例如通过"摇树"。

首先,我必须说,在大多数情况下,将jQuery与Angular混合是一个坏主意,所以我希望您有充分的理由。关于您的问题

使用 angular.json的scripts属性导入文件时,您就是这样做的 - 导入整个文件并运行其代码。在Angular上,将在执行Angular App代码之前完成。

另一方面,导入模块时(使用 npm > NPM 的软件包安装后,您只能导入所需的模块,这通常意味着较少的代码浏览器。我通常写的是,因为当使用jQuery时,您很可能无论如何都会导入整个库。

我总是希望在可能的情况下使用软件包管理器安装,因为:

  • 安装和更新更容易
  • 使用Angular等框架
  • 是标准
  • 它仅允许导入我需要的实际代码,而不是整个库(在jQuery上的情况并不重要,但对其他库确实有用(。

最新更新