ByJustin Curto,
who covers music, TV, and celebrity for Vulture
Photo: Gilbert Flores/Variety via Getty Images
To answer the immortal words of returning VMAs emcee Nicki Minaj, “What’s good?” A lot at the MTV show this year — starting with the nominees. Taylor Swift led the pack with 9 wins, largely for her self-directed “Anti-Hero” video, and has a repeat Video of the Year win after taking the top award last year for her “All Too Well (Taylor’s Version)” short film. She’s now second to Beyoncé for most overall wins at the VMAs. Also among the top nominees: SZA, Doja Cat, Miley Cyrus, Minaj, Blackpink, and Olivia Rodrigo, many of whom will also be performing. It’s a banner year for women and nonbinary artists at the awards, who make up the entire slate of nominees for Video of the Year and Artist of the Year for the first time. Speaking of firsts, there’s also the debut of the Best Afrobeats category. And this year’s ceremony is set to present two lifetime achievement awards: the Video Vanguard Award to Shakira and the Global Icon Award to Diddy.
The Moon People will start to fly when the preshow begins at 6:30 p.m. ET, followed by the main show at 8 p.m. Below, a full list of winners for the 2023 MTV VMAs.
Video of the Year Doja Cat – “Attention” Miley Cyrus – “Flowers” Nicki Minaj – “Super Freaky Girl” Olivia Rodrigo – “vampire” Sam Smith, Kim Petras – “Unholy” SZA – “Kill Bill” Taylor Swift – “Anti-Hero”
Artist of the Year Beyoncé Doja Cat KAROL G Nicki Minaj Shakira Taylor Swift
Song of the Year Miley Cyrus – “Flowers” Olivia Rodrigo – “vampire” Rema & Selena Gomez – “Calm Down” Sam Smith, Kim Petras – “Unholy” Steve Lacy – “Bad Habit” SZA – “Kill Bill” Taylor Swift – “Anti-Hero”
Best New Artist GloRilla Ice Spice Kaliii Peso Pluma PinkPantheress Reneé Rapp
Push Performance of the Year Saucy Santana – “Booty” Stephen Sanchez – “Until I Found You” JVKE – “golden hour” Flo Milli – “Conceited” Reneé Rapp – “Colorado” Sam Ryder – “All the Way Over” Armani White – “GOATED” FLETCHER – “Becky’s So Hot” TOMORROW X TOGETHER – “Sugar Rush Ride” Ice Spice – “Princess Diana” FLO – “Losing You” Lauren Spencer Smith – “That Part”
Best Collaboration David Guetta & Bebe Rexha – “I’m Good (Blue)” Post Malone, Doja Cat – “I Like You (A Happier Song)” Diddy ft. Bryson Tiller, Ashanti, Yung Miami – “Gotta Move On” KAROL G, Shakira – “TQG” Metro Boomin with the Weeknd, 21 Savage, and Diddy – “Creepin’ (Remix)” Rema & Selena Gomez – “Calm Down”
Best Pop Demi Lovato – “Swine” Dua Lipa – “Dance the Night (From Barbie The Album)” Ed Sheeran – “Eyes Closed” Miley Cyrus – “Flowers” Olivia Rodrigo – “vampire” P!NK – “TRUSTFALL” Taylor Swift – “Anti-Hero”
Best Hip-Hop Diddy ft. Bryson Tiller, Ashanti, Yung Miami – “Gotta Move On” DJ Khaled ft. Drake & Lil Baby – “STAYING ALIVE” GloRilla & Cardi B – “Tomorrow 2” Lil Uzi Vert – “Just Wanna Rock” Lil Wayne ft. Swizz Beatz & DMX – “Kant Nobody” Metro Boomin ft. Future – “Superhero (Heroes & Villains)” Nicki Minaj – “Super Freaky Girl”
Best R&B Alicia Keys ft. Lucky Daye – “Stay” Chlöe ft. Chris Brown – “How Does It Feel” Metro Boomin with The Weeknd, 21 Savage, and Diddy – “Creepin’ (Remix)” SZA – “Shirt” Toosii – “Favorite Song” Yung Bleu & Nicki Minaj – “Love In The Way”
Best Alternative blink-182 – “EDGING” boygenius – “the film” Fall Out Boy – “Hold Me Like A Grudge” Lana Del Rey ft. Jon Batiste – “Candy Necklace” Paramore – “This Is Why” Thirty Seconds To Mars – “Stuck”
Best Rock Foo Fighters – “The Teacher” Linkin Park – “Lost (Original Version)” Red Hot Chili Peppers – “Tippa My Tongue” Måneskin – “THE LONELIEST” Metallica – “Lux Æterna” Muse – “You Make Me Feel Like It’s Halloween”
Best Latin Anitta – “Funk Rave” Bad Bunny – “WHERE SHE GOES” Eslabon Armado, Peso Pluma – “Ella Baila Sola” Grupo Frontera Bad Bunny – “un x100to” KAROL G, Shakira – “TQG” ROSALÍA – “DESPECHÁ” Shakira – “Acróstico”
Best K-Pop aespa – “Girls” BLACKPINK – “Pink Venom” FIFTY FIFTY – “Cupid” SEVENTEEN – “Super” Stray Kids – “S-Class” TOMORROW X TOGETHER – “Sugar Rush Ride”
Best Afrobeats Ayra Starr – “Rush” Burna Boy – “It’s Plenty” Davido ft. Musa Keys – “UNAVAILABLE” Fireboy DML & Asake – ”Bandana” Libianca – “People” Rema & Selena Gomez – “Calm Down” Wizkid ft. Ayra Starr– “2 Sugar”
Video for Good Alicia Keys – “If I Ain’t Got You (Orchestral)” Bad Bunny – “El Apagón - Aquí Vive Gente” Demi Lovato – “Swine” Dove Cameron – “Breakfast” Imagine Dragons – “Crushed” Maluma – “La Reina”
Show of the Summer Beyoncé BLACKPINK Drake Ed Sheeran KAROL G Taylor Swift
Group of the Year BLACKPINK FIFTY FIFTY FLO Jonas Brothers Måneskin NewJeans SEVENTEEN TOMORROW X TOGETHER
Album of the Year Beyoncé – Renaissance Drake & 21 Savage – Her Loss Metro Boomin – Heroes & Villains Miley Cyrus – Endless Summer Vacation SZA – SOS Taylor Swift – Midnights
Song of the Summer Beyoncé – “Cuff It” Billie Eilish – “What Was I Made For? (From Barbie The Album)” Doechii ft. Kodak Black – “What It Is (Block Boy)” Doja Cat – “Paint the Town Red” Dua Lipa – “Dance the Night (From Barbie The Album)” FIFTY FIFTY – “Cupid (Twin Ver.)” Gunna – “fukumean” Jung Kook ft. Latto – “Seven” Luke Combs – “Fast Car” Nicki Minaj & Ice Spice – “Barbie World (with Aqua) [From Barbie The Album]” Olivia Rodrigo – “vampire” SZA – “Kill Bill” Taylor Swift ft. Ice Spice – “Karma” Tomorrow X Together and Jonas Brothers – “Do It Like That” Troye Sivan – “Rush” Yng Lvcas & Peso Pluma – “La Bebe (Remix)”
Best Direction Doja Cat – “Attention” (Directed by Tanu Muiño) Drake – “Falling Back” (Directed by Director X (Julien Christian Lutz)) Kendrick Lamar – “Count Me Out” (Directed by Dave Free & Kendrick Lamar) Megan Thee Stallion – “Her” (Directed by Colin Tilley) Sam Smith, Kim Petras – “Unholy” (Directed by Floria Sigismondi) SZA – “Kill Bill” (Directed by Christian Breslauer) Taylor Swift – “Anti-Hero” (Directed by Taylor Swift)
Best Cinematography Adele – “I Drink Wine” (Cinematography by Adam Newport-Berra) Ed Sheeran – “Eyes Closed” (Cinematography by Natasha Baier) Janelle Monae – “Lipstick Lover” (Cinematography by Allison Anderson) Kendrick Lamar – “Count Me Out” (Cinematography by Adam Newport-Berra) Miley Cyrus – “Flowers” (Cinematography by Marcell Rev) Olivia Rodrigo – “vampire” (Cinematography by Russ Fraser) Taylor Swift – “Anti-Hero” (Cinematography by Rina Yang)
Best Visual Effects Fall Out Boy – “Love From The Other Side” (Visual Effects by Thomas Bailey and Josh Shaffner) Harry Styles – “Music For A Sushi Restaurant” (Visual Effects by Chelsea Delfino and Black Kite Studios) Melanie Martinez – “VOID” (Visual Effects by Carbon) Nicki Minaj – “Super Freaky Girl” (Visual Effects by CameoFX) Sam Smith, Kim Petras – “Unholy” (Visual Effects by Max Colt / FRENDER) Taylor Swift – “Anti-Hero” (Visual Effects by Parliament)
Best Choreography BLACKPINK – “Pink Venom” (Choreography by Kiel Tutin, Sienna Lalau, Lee Jung (YGX), Taryn Cheng (YGX)) Dua Lipa – “Dance The Night (From Barbie The Album)” (Choreography by Charm LaDonna) Jonas Brothers – “Waffle House” (Choreography by Jerry Reece) Megan Thee Stallion – “Her” (Choreography by Sean Bankhead) Panic! At The Disco – “Middle Of A Breakup” (Choreography by Monika Felice Smith) Sam Smith, Kim Petras – “Unholy” (Choreography by (LA)HORDE - Marine Brutti, Jonathan Debrouwer, Arthur Harel)
Best Art Direction boygenius – “the film” (Art Direction by Jen Dunlap) BLACKPINK – “Pink Venom” (Art Direction by Seo Hyun Seung (GIGANT)) Doja Cat – “Attention” (Art Direction by Spencer Graves) Lana Del Rey ft. Jon Batiste – “Candy Necklace” (Art Direction by Brandon Mendez) Megan Thee Stallion – “Her” (Art Direction by Wes Dogan) SZA – “Shirt” (Art Direction by Kate Bunch)
Best Editing BLACKPINK – “Pink Venom” (Editing by Seo Hyun Seung (GIGANT)) Kendrick Lamar – “Rich Spirit” (Edited by Grason Caldwell) Miley Cyrus – “River” (Edited by Brandan Walter) Olivia Rodrigo – “vampire” (Edited by Sofia Kerpan and David Checel) SZA – “Kill Bill” (Edited by Luis Caraza Peimbert) Taylor Swift – “Anti-Hero” (Edited by Chancler Haynes)
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(3),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(136),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,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),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(408),_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,"408":408,"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","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.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();
// ]]