ByKeith Phipps,
a freelance film critic and culture writer
Photo-Illustration: Vulture; Photos: 20th Century Fox, Cannon Film Distributors, Columbia Pictures, Miramax Films, New Line Cinema, Warner Bros,
This list was originally published in 2022. Dwayne Johnson’s latest movie Red One, in which Johnson as an E.L.F. operative (?) rescues a swole Santa (??) played by J.K. Simmons (???), will not be added to this list of Best Christmas Action Movies. Read below for films we do recommend.
It’s Christmas-movie season, which means lots of films filled with cheer, mistletoe, happy endings, and, for some, the occasional explosion and bursts of submachine-gun fire. There’s a well-established tradition of Christmas movies that feel as comforting as a fire roaring in a hearth covered in festive decorations. But there’s a parallel tradition of holiday movies more akin to watching that flame spread uncontrollably until the house burns down, films set in the zone where yuletide merriment and action movies overlap.
It’s not a bad place to hang out for the holidays as long as you don’t mind the whizzing bullets. Below, you’ll find some of the best action movies set around Christmas. You’ll also see a few patterns emerge. One writer-director has made using the holiday as a backdrop for action chaos into a signature, and New York cop turned L.A. hero John McClane made a habit out of finding trouble during Christmas. You’ll also notice a somewhat loose definition of the word action, one that includes plenty of traditional action films and a couple of Christmas thrillers that were just too good to leave out. If your taste in holiday films runs more toward pounding fists and crashing cars than dancing sugar plums, read on.
13.
Violent Night (2022)
With David Harbour as a Santa Claus who discovers kicking the asses of a bunch of criminals is just what he needs, Violent Night has a clever premise but never really figures out where to take it once the novelty of watching Santa rack up a body count wears off. It often plays like a slightly tongue-in-cheek Die Hard riff that just happens to have Santa in it. But highlights like an extended homage to Home Alone and Harbour’s performance should make it worth a look for the curious, even if those expecting the ultimate badass Christmas action movie are likely to be a little disappointed.
12.
Invasion U.S.A. (1985)
In its 1980s heyday, Cannon Films made a fortune flooding the market with modestly budgeted genre movies. Sometimes these were attempts to exploit the latest pop-culture trend, as with Breakin’, but the studio specialized in action movies with recognizable stars and a dash (or more) of right-wing politics. Hysterical (in every sense), Invasion U.S.A. imagines an America thrown into chaos by a holiday-season influx of commie terrorists who can only be stopped by one man: Cannon fixture Chuck Norris, who stars as retired CIA agent Matt Hunter. The film’s amazing centerpiece scene finds Hunter battling gun-toting baddies in a shopping mall filled with Christmas decorations and terrified shoppers.
11.
Reindeer Games (2000)
John Frankenheimer’s last theatrically released film isn’t one of the director’s best, but time has been kind to it, in no small part because it’s not easy to take any Frankenheimer film for granted since his death in 2002. He largely spent the back half of his career as a studio craftsman, a steady hand who could be brought in for work-for-hire jobs like an attempt to salvage The Island of Dr. Moreau from disaster (an impossible task) and still had the potential to turn out an action classic like Ronin. Headed by a pair of then-rising stars, Reindeer Games stars Ben Affleck as Rudy Duncan, a recently released convict who poses as a dead friend named Nick in order to meet Ashley (Charlize Theron), the pen-pal girlfriend Nick never met. Trouble finds him in the form of Ashley’s brother, Gabriel (Gary Sinise), and a series of twists and turns lead to Rudy getting roped into a scheme to rob a casino when all he really wants to do is join his family for Christmas. It’s never quite as good as it ought to be, but any movie that puts Affleck in cowboy and Santa costumes and features Isaac Hayes and Dennis Farina can’t be all bad.
10.
The Tower (2012)
An extended riff on The Towering Inferno,this South Korean disaster movie follows an expansive cast of characters who find themselves trapped in a pair of connected skyscrapers as they’re engulfed by flames. The source of those flames: a Christmas celebration that climaxes with ten helicopters dropping fake snow on the partygoers, a stunt that turns out to be a bad idea because of strong winds and some not-up-to-code fire extinguishers. Alternately silly and melodramatic but consistently fun, it probably features more Christmas miracles per minute than any other movie on this list.
9.
The Long Kiss Goodnight (1996)
This Renny Harlin–directed movie hinges on a different sort of Christmas miracle. Geena Davis stars as Samantha Caine, a woman who’s put together a pretty nice life for herself and her daughter eight years after mysteriously turning up in New Jersey with no memories of her past life. It all starts to come back to her, however, after a Christmas-season car accident leaves her with a concussion. Samuel L. Jackson co-stars as a private detective drawn into Samantha’s dangerous world, and this underrated-in-its-time film represents something of a Christmas–action movie convergence: Harlin also directed Die Hard 2, and it was scripted by Shane Black (more on both below).
8.
Die Hard 2 (1990)
Speaking of Die Hard 2, the second entry in what would become an ongoing series finds John McClane (Bruce Willis) once again fighting terrorists to save his wife, Holly (Bonnie Bedelia), at the height of the holidays. But instead of being stuck in a skyscraper, Holly’s high in the skies aboard a plane that’s been caught in the crossfire of an elaborate scheme involving a notorious military leader’s attempt to escape after being extradited to the United States. The film is bigger, louder, and more violent than the original. It never quite lives up to its predecessor, but it’s fun in its own clamorous way.
7.
Kiss Kiss Bang Bang (2005)
Shane Black has made this list once already and he’ll make it again before we’re through. In fact, if Black’s Christmas-themed movies wouldn’t overwhelm the list, he might even make it a few more times. Christmas factors, in ways both large and small, into the fabric of Black-scripted (and sometimes directed) films from Last Action Hero to Iron Man 3 to The Nice Guys, all compelling in their own way. So let Kiss Kiss Bang Bang, Black’s directorial debut, stand in for all of the above in part because Christmas is so central, narratively and thematically, to its plot. Robert Downey Jr. stars as Harry, a New York thief who ends up in L.A. after accidentally stumbling into an audition. Once there, he gets wrapped up in a mystery, befriends a private eye named Perry (Val Kilmer), and reconnects with Harmony (Michelle Monaghan), a childhood crush. The film is filled with unexpected turns, but it’s also the story of lost people looking for redemption who make an unexpected connection in the midst of peril and a Los Angeles all decked out for yuletide.
6.
The Ice Harvest (2005)
Groundhog Day director Harold Ramis made comedies about redemption and the innate goodness at the heart of humanity — except when he didn’t. Working from a script by Richard Russo and Robert Benton, this noirish thriller stars John Cusack and Billy Bob Thornton as shady characters who’ll have it made if they can just get out of Wichita on Christmas Eve. As the title suggests, an ice storm makes that task nearly impossible as twists and double-crosses further complicate their attempts. Dark, misanthropic, and consistently funny, it’s a jolting alternative to a season that’s supposed to be defined by peace on Earth and good will toward men.
5.
Home Alone (1990)
Yes, this John Hughes–scripted, Chris Columbus–directed holiday staple is filled with twinkly comedy and heartwarming moments. But it’s also a film about a kid who learns that survival sometimes means acts of extreme violence. The film’s final act is more Straw Dogs than It’s a Wonderful Life as young Kevin McCallister (Macaulay Culkin) uses a variety of household items to inflict grievous bodily harm on the Wet Bandits (Daniel Stern and Joe Pesci), a pair of bungling bad guys who mistakenly believe him to be an easy target.
4.
Batman Returns (1992)
Even the most terrifying cities have to celebrate the holidays, and this first sequel to Batman finds Gotham City transformed into a wonderland of festive lights and colorful decorations. It looks like a place where nothing could go wrong. Then, of course, it does thanks to the arrival of the Penguin (Danny DeVito), a malformed criminal mastermind who schemes to bend the city to his will. There’s a lot more going on in Tim Burton’s second Batman film — which also features Michelle Pfeiffer’s Catwoman and Christopher Walken as an evil industrialist — and none of it has that much to do with Christmas. But the winter cheer constantly proves an ironic counterpoint to all the darkness.
3.
The Silent Partner (1978)
The plot of this twisty (and twisted) thriller unfolds between Christmas and Easter, but some of its tensest moments cast the season’s cheeriest elements in a sinister light. Elliott Gould stars as Miles Cullen, a teller at a bank inside a large shopping mall. After putting together a few clues, Miles comes to realize his workplace will soon be the target for a bank robber (Christopher Plummer) posing as a mall Santa and decides to cut himself in on the action — with disastrous consequences once the bad guy figures out he’s been robbed. Plummer is so menacing in the role he makes the many killer-Santa movies that followed look almost tame by comparison.
2.
Lethal Weapon (1987)
Shane Black’s breakthrough screenplay immediately established why he considers Christmas more than just a neat backdrop for an action film. Mel Gibson stars as Martin Riggs, an LAPD detective who’s scarred by his service in Vietnam and, more recently, the death of his wife. Through his partnership with Roger Murtaugh (Danny Glover), he climbs out of suicidal despair and regains his will to live. Oh, sure, there’s a twisty plot and some standout action scenes, but at its heart, this Richard Donner–directed film is a story of grace and redemption that just happens to take the form of an action movie.
1.
Die Hard (1988)
The same can be said for the greatest of all Christmas action movies. Directed by John McTiernan, Die Hard is the story of John McClane attempting to reconcile with his semi-estranged wife, Holly. He encounters some complications along the way, however, when a group of armed bad guys, led by the sneering Hans Gruber (Alan Rickman), take over the towering L.A. office building where Holly works. For all its flying bullets and blood-soaked feet, it’s a story of togetherness and self-sacrifice. Every once in a while, the internet will erupt in debate about whether Die Hard qualifies as a Christmas movie. It’s the wrong question. A better one: If it’s not a Christmas movie, then what is?
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]