diff --git a/packages/autoupdate/autoupdate_server.js b/packages/autoupdate/autoupdate_server.js index 8b99ba00ad..182b31e8ac 100644 --- a/packages/autoupdate/autoupdate_server.js +++ b/packages/autoupdate/autoupdate_server.js @@ -108,30 +108,35 @@ var updateVersions = function (shouldReloadClientProgram) { }}); } - if (! ClientVersions.findOne({_id: "version-refreshable"})) { - ClientVersions.insert({ - _id: "version-refreshable", - version: Autoupdate.autoupdateVersionRefreshable, - assets: WebAppInternals.refreshableAssets - }); - } else { - ClientVersions.update("version-refreshable", { $set: { - version: Autoupdate.autoupdateVersionRefreshable, - assets: WebAppInternals.refreshableAssets + // Use `onListening` here because we need to use + // `WebAppInternals.refreshableAssets`, which is only set after + // `WebApp.generateBoilerplate` is called by `main` in webapp. + WebApp.onListening(function () { + if (! ClientVersions.findOne({_id: "version-refreshable"})) { + ClientVersions.insert({ + _id: "version-refreshable", + version: Autoupdate.autoupdateVersionRefreshable, + assets: WebAppInternals.refreshableAssets + }); + } else { + ClientVersions.update("version-refreshable", { $set: { + version: Autoupdate.autoupdateVersionRefreshable, + assets: WebAppInternals.refreshableAssets }}); - } + } - if (! ClientVersions.findOne({_id: "version-cordova"})) { - ClientVersions.insert({ - _id: "version-cordova", - version: Autoupdate.autoupdateVersionCordova, - refreshable: false - }); - } else { - ClientVersions.update("version-cordova", { $set: { - version: Autoupdate.autoupdateVersionCordova - }}); - } + if (! ClientVersions.findOne({_id: "version-cordova"})) { + ClientVersions.insert({ + _id: "version-cordova", + version: Autoupdate.autoupdateVersionCordova, + refreshable: false + }); + } else { + ClientVersions.update("version-cordova", { $set: { + version: Autoupdate.autoupdateVersionCordova + }}); + } + }); }; Meteor.publish(