Chris Murphy Wants Democrats to Break Up With Neoliberalism
The Democratic senator speaks out about the future of his party.
BySarah Jones,
senior writer for Intelligencer who covers politics and labor
Senator Chris Murphy speaking to reporters in the Senate subway in the U.S. Capitol on Tuesday, January 23, 2024.
Photo: Bill Clark/CQ-Roll Call/Getty Images
Senator Chris Murphy speaking to reporters in the Senate subway in the U.S. Capitol on Tuesday, January 23, 2024.
Photo: Bill Clark/CQ-Roll Call/Getty Images
When Vice-President Kamala Harris lost the election to Donald Trump, it was clear that her economic message failed to break through with most voters. Still reeling from the effects of inflation and a cost-of-living crisis, Americans did not believe a Democratic president would deliver the change they sought. Five days later, Senator Chris Murphy, a Democrat from Connecticut, posted a postmortem of sorts to X. “Time to rebuild the left,” read one post in part. “We are out of touch with the crisis of meaning/purpose fueling MAGA. We refuse to pick big fights. Our tent is too small.” The left, he added, “has never fully grappled with the wreckage of fifty years of neoliberalism,” and should become “less judgmental,” he concluded.
Elected to the House in 2006, then to the Senate in 2012, the liberal Murphy was an early supporter of the Affordable Care Act and stronger gun laws following the Sandy Hook elementary-school shooting in Newtown. Over the past several years, he’s also fashioned another identity as a critic of the neoliberal consensus. In a 2022 piece for The Atlantic, he wrote that Democrats must “do the work that would make us the natural favorite for Americans who want government to act in their interests — not merely as the facilitator of some dreamy neoliberal ideal.”
I spoke with Murphy this week about neoliberalism in crisis, the failures of Democratic rhetoric, and how he thinks the party should expand its big tent. This interview has been edited for length and clarity.
Over the last several years, you’ve often warned that the postwar neoliberal order is breaking down, and I was curious to know how you define neoliberalism and how you’ve reached that conclusion. Neoliberalism is a belief that markets and in particular global markets will work for the benefit of the common good with light adjustments here or there by the government. I think neoliberalism is also about the belief in the individual as the hero of every story as opposed to the community or the collective. And so as a result, both Democrats and Republicans have been very reluctant over the past 40 years to do anything to disrupt existing markets, in particular international markets, and have sort of let society and culture and our economy slide away from a focus on the common good, instead believing that we should just align incentives so that each individual is able to have a shot at material wealth. So that to me is kind of the definition that I use in my head.
Many would argue that neoliberalism has become a core tenet of Democratic Party politics and remains so today. Do you think that’s true? And if so, why did you decide to become so critical of it? I think there’s a fight inside the Democratic Party today about whether or not neoliberalism has permanently failed. There are still plenty of market believers and market fundamentalists inside the Democratic Party, but I would argue Joe Biden made a pretty material break from neoliberal orthodoxy. His unabashed public support for labor unions, his revitalization of industrial policy, albeit targeted industrial policy, and his work to rebuild American antitrust power was all a recognition that we needed to move beyond our neoliberal failures. And one of my frustrations is that President Biden and Vice-President Harris didn’t lead their economic messaging by talking about their break with neoliberalism, their belief in the need to break up corporate power, their belief in the need to revitalize labor unions. So the policy was really good. I just don’t think the rhetoric always matched the policy.
You’ve also written of “a very real epidemic of American unhappiness.” When did you first conclude that there was such an epidemic, and how does that epidemic manifest itself? There was no ignoring the fact that all of our traditional public policy metrics were heading in the right direction in 2022 and 2023. GDP was growing, inflation was coming down, unemployment was at a near structural low, crime was dropping, and yet people were just as if not more pessimistic about the direction of the country. And self-reported rates of happiness were plummeting. So clearly, we have made this assumption that having a job and national GDP growing would lead to happier people, and that wasn’t turning out to be true. And I think it’s because we fundamentally misunderstand what makes people happy. A job is important and income is important, but material success is not actually what is most relevant to people’s sense of fulfillment. Connection is really important, and connection’s harder today than ever before because of decisions that the government has made.
People want to feel power over the arc of their lives, and the concentration of corporate power has eroded people’s personal economic agency. And then people want to feel like they’re part of something unique. They want to have a unique national identity or a unique local identity. Our borders started to get erased and our culture started to become flattened, and we all belong to the exact same transnational economy. Life began to feel very empty and hollow and far too homogenous for a lot of Americans. So that’s a hard conversation for government to have about the lack of connection, lack of life power, lack of meaning and purpose. But I think that’s the story as to why people were feeling pretty shaky, even amidst the economic data telling people that they should feel good.
How does the government go about addressing that? Is it something that government’s even fully capable of addressing? Well, listen, I don’t think government is ever responsible for delivering the last mile of happiness. But I do think we’re supposed to create a foundation in which happiness is a little bit easier to find. Actually, that’s what the Declaration of Independence says. And so, yeah, we should be consciously thinking about social connection policy.
How do we make it easier for people to be in communion with each other? If we were thinking more aggressively about the importance of social connection policy, we would’ve regulated social media the minute they started to dominate our family’s lives. We would’ve not allowed our downtowns to become stripped bare and our entire economy to move online. We would’ve pushed people back into in-person employment much more quickly instead of allowing the entire economy to be run from people’s kitchen tables. So yes, I think that … I’m talking about this narrow issue of people’s lack of connection, but that’s an example of a feeling that people are having social isolation and loneliness that government can play a role in helping to address.
I sometimes cover labor, and one thing that I’ve thought about quite a lot is how the decline in union density in this country is maybe contributing to this sort of loneliness or this spiritual crisis that you’ve talked about. Do you think there’s something to that? Well, let me broaden it out a bit more. We are living at a moment where lots of institutions are in crisis, and many people who found their purpose and meaning through affiliation with an institution are losing those connections. So I don’t think it’s a coincidence that both church membership and union membership are going down and people are feeling much more unhappy.
Churches and unions are places where you find connection and companionship to people who believe the same things you do, but they’re also places where you learn selflessness, where you live for others. And so I think government needs to have a conversation about how to make institutions healthier. Now, again, the reasons that unions have become less powerful and the reason that people have left church are complicated, and government doesn’t hold all the answers, but we’re not impotent. We could certainly choose to shift organizing rules so that there’s an unlevel playing field that tilts toward workers joining unions, and we could choose to spend some amount of government money to help churches become more financially sound and able to do additional outreach to communities at a time when it’s pretty hard to make a church budget work.
After Vice-President Harris lost the election, you tweeted, “Real economic populism should be our tent pole.” And I was curious to know what, in practical terms, does that look like? So I think there’s a rhetorical and policy aspect to that answer. First, I just think we need to talk about power more. We are so in love with our solutions that we spend 80 percent of our time talking about the policy solution and only 20 percent of the time identifying with the way that people are getting screwed.
Take prescription-drug pricing, for instance. I’m all in on bulk negotiation of drug prices, but that seems pretty small ball to a lot of Americans who just think we should cap the price of prescription drugs without some super-elaborate scheme attached to it. Our solutions can be simpler. And we can also decide when talking about prescription drugs to spend 80 percent of our time talking about how the drug companies are screwing people and 20 percent of our time talking about the solutions, instead of what we do today, which is the exact opposite. I think the other critique I would have is that people are not terribly inspired by handouts.
I’m a supporter of the child tax credit. I didn’t mind forgiving people’s student loans. I like the elevated Obamacare subsidies, but those three things didn’t win as many votes. Because people know that the rules of the economy are rigged. And while they appreciate a little extra money in their pocket, they would much rather the rules get unrigged so that if you wanted to start a bookstore, you wouldn’t be run out of business by Amazon within hours of opening your doors. Families want to know that if one parent wants to stay home to raise the kids for five years, their economy allows for one income at least temporarily, to be enough for a family to live on. And they don’t want that solved just by the government writing them a check. So I think that those are my true critiques that we have to talk about power. We have to argue for simpler, more powerful solutions. We need to spend time critiquing the problem, not just explaining the solution. And we need to focus on unrigging the rules rather than just writing checks to people that make it look as if we’re papering over the rigged rules.
You also tweeted that Democrats “need to let people into the tent who aren’t 100% on board with us on every social and cultural issue or issues like guns or climate.” The big-tent strategy isn’t new to the Democratic Party, so I was curious if you could clarify what you meant and explain why it’s important for Democrats to turn to this now. I worry that we have become a party with a dozen litmus tests. And that in all sorts of ways we telegraph, maybe not through official party policy, but through informal control mechanisms that we don’t really want you at the table if you aren’t with us on abortion, gay rights, guns, climate, and a host of other really important issues. And I saw this a year and a half ago when I listened to this guy, Oliver Anthony, sing the song about “Rich Men North of Richmond.” I heard him talk about the soullessness of modern work. I heard him rail against the corporate and billionaire class, and I publicly knew that we should be in a conversation with the people who are listening to his song and finding it so compelling. But the song also had some kind of nasty conservative tropes. It referenced at least one QAnon conspiracy. And the reaction to my suggestion was pretty universal condemnation from the conventional online left who wanted to label Anthony and his followers as racists and not even worthy of a conversation. They’re maybe backwater racists, right?
And so to me, that’s the signaling that we send, and here’s why it’s important. You’re much more likely to convert somebody if they’re inside the tent than outside the tent. Especially today when we have these cordoned-off information ecosystems. You have virtually no chance to convince somebody who is anti-choice to rethink their positioning if they are not inside your tent because they’re listening to people who only agree with them. There is plenty of evidence to show that when our tent was much bigger and more diverse, we were actually able to make pretty significant progress on issues, even on the issues where we had inside disagreements. Even though our coalition wasn’t universally focused on environmental protection during the ’70s and ’80s, we were able to pass significant legislation protecting the environment. So I think from a coalition, from a political coalition-building standpoint, it’s criminal to not grow your tent. But I also am not convinced that we wouldn’t be better off when it comes to winning on the issues we care about if we had some people who disagreed with us inside.
Abortion rights and rights for trans people are both poised to be uniquely threatened by the Trump administration. How do we let more people into the tent without making vulnerable people more vulnerable in the end? I don’t see a lot of evidence that we are winning those people over by not speaking to them. So I think we’ve got to put ourselves in rooms with conservative people and talk to them about why gay kids and trans kids are no threat to them. But also invite them to come into a conversation with us over our mutual agreement on populist economics. And then once we are in that conversation, I’ve just got a much better chance of convincing them that biological girls playing in boys’ sports is not the existential threat to America that the right makes you think it is. But you got to be talking to people to confirm. And we’ve lived in this world in which we just think shaming people who disagree with us is eventually going to win the argument.
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();
// ]]