Я импортирую Angular 1.4 в моем модуле точки входа Webpack в качестве модуля CommonJS (то есть с var angular = require("angular");
), но каким-то образом он становится доступным в глобальном пространстве имен браузера (т. Е. Как window.angular
).Угловой присваивает себя `window.angular` глобально, когда загружается как модуль CommonJS?
В исходном коде угловыми 1.4 я нашел следующие строки:
(function(window, document, undefined) {'use strict';
...
var
msie, // holds major version number for IE, or NaN if UA is not IE.
jqLite, // delay binding since jQuery could be loaded after us.
jQuery, // delay binding
slice = [].slice,
splice = [].splice,
push = [].push,
toString = Object.prototype.toString,
getPrototypeOf = Object.getPrototypeOf,
ngMinErr = minErr('ng'),
/** @name angular */
angular = window.angular || (window.angular = {}),
angularModule,
uid = 0;
Таким образом, я могу получить это право, что на require
, эту линию:
angular = window.angular || (window.angular = {})
проверки, если глобальная угловой объект доступен, а если нет, создает его. Итак, угловое молчание вводит побочный эффект?