From 9f1675d5afcb14ec2d805a10949fa059bd451ae6 Mon Sep 17 00:00:00 2001 From: Patrick Steele-Idem Date: Tue, 18 Apr 2017 12:08:14 -0600 Subject: [PATCH] FIxes #673 - Circular dependency is causing problems with Webpack --- components/ComponentsContext.js | 7 ++++--- components/index-browser.js | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/components/ComponentsContext.js b/components/ComponentsContext.js index 287a6e80e..aa703544c 100644 --- a/components/ComponentsContext.js +++ b/components/ComponentsContext.js @@ -1,7 +1,6 @@ 'use strict'; var ComponentDef = require('./ComponentDef'); -var initComponents = require('./init-components'); var componentsUtil = require('./util'); var isServer = componentsUtil.$__isServer === true; @@ -19,13 +18,15 @@ function GlobalComponentsContext(out) { } GlobalComponentsContext.prototype = { - $__initComponents: function (doc) { + $__initComponents: function(doc) { var topLevelComponentDefs = null; this.$__roots.forEach(function(root) { var children = root.$__children; if (children) { - initComponents.$__initClientRendered(children, doc); + // NOTE: ComponentsContext.$__initClientRendered is provided by + // index-browser.js to avoid a circular dependency + ComponentsContext.$__initClientRendered(children, doc); if (topLevelComponentDefs === null) { topLevelComponentDefs = children; } else { diff --git a/components/index-browser.js b/components/index-browser.js index 6011fffc0..a1bf01286 100644 --- a/components/index-browser.js +++ b/components/index-browser.js @@ -1,6 +1,9 @@ var componentsUtil = require('./util'); var events = require('../runtime/events'); var Component = require('./Component'); +var initComponents = require('./init-components'); + +require('./ComponentsContext').$__initClientRendered = initComponents.$__initClientRendered; function onInitComponent(listener) { events.on('initComponent', listener); @@ -9,7 +12,7 @@ function onInitComponent(listener) { exports.onInitComponent = onInitComponent; exports.Component = Component; exports.getComponentForEl = componentsUtil.$__getComponentForEl; -exports.init = require('./init-components').$__initServerRendered; +exports.init = initComponents.$__initServerRendered; exports.c = require('./defineComponent'); // Referenced by compiled templates exports.r = require('./renderer'); // Referenced by compiled templates