Angular 2依赖Zone.js

时间:2016-07-11 10:01:32

标签: angular

我正在开发一个由一堆模块组成的大项目。我使用 Angular 2 rc.3 实现了我的模块。我也使用webpack捆绑模块。 webpack的输出是3个文件:app.js,polyfills.js和vendor.js。 app.js包含应用程序代码,vendors.js包含导入的angular 2的模块和rxjs运算符,polyfills.js包含reflect-metadata和 zone.js 库。 polyfills.js是从polyfill.ts编译的,包含:

import 'reflect-metadata';
require('zone.js/dist/zone');

我的模块随后被用作大型单页面应用程序的一部分。 我非常担心的是 zone.js依赖。它修补了全局范围内的功能。在我的模块中包含此库会影响其他团队的模块。这是不可接受的。 在将jquery jqXHR转换为ES2016 Promise时,zone.js存在问题。一个jqXHR对象可以在被拒绝时解析为自身。因此,zone.js的resolvePromise函数进入无限循环,试图解决那个问题。这导致浏览器挂起。我解决了这个问题,但主要的问题是这个问题甚至不在我的模块中,而是在其他团队的模块中。

所以你看到如何将zone.js添加到我的模块可能导致其他模块出错。我不能允许这样做。

我的问题是我如何只为我的模块沙箱zone.js 所以它不会影响其他模块?如果Angular团队没有想到它,这是一个泥泞的因为我相信它不仅对我而且对其他开发者和公司来说都是一个阻碍者。

0 个答案:

没有答案