<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mihail</title>
    <description>The latest articles on DEV Community by Mihail (@andonimihai).</description>
    <link>https://dev.to/andonimihai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F495714%2F5bd8d414-a287-4bba-9d4f-ae0592c7bb6e.png</url>
      <title>DEV Community: Mihail</title>
      <link>https://dev.to/andonimihai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/andonimihai"/>
    <language>en</language>
    <item>
      <title>Complete guide to tailwindcss in 2024</title>
      <dc:creator>Mihail</dc:creator>
      <pubDate>Mon, 22 Jan 2024 20:47:08 +0000</pubDate>
      <link>https://dev.to/andonimihai/complete-guide-to-tailwindcss-in-2024-52d9</link>
      <guid>https://dev.to/andonimihai/complete-guide-to-tailwindcss-in-2024-52d9</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;br&gt;
This post is based on my experience and personal opinion. You should constantly challenge articles and influencers' views before making a technical decision for your project.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you come across this post, it means you have heard about or already worked with Tailwind CSS. In any case, I hope this post will be helpful.&lt;/p&gt;

&lt;p&gt;Let's start with a small recap.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Tailwind CSS?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://tailwindcss.com/"&gt;Tailwind CSS&lt;/a&gt; is a utility-first CSS framework that streamlines the styling process by offering a set of utility classes. Think of it as &lt;a href="https://getbootstrap.com/"&gt;Bootstrap&lt;/a&gt;, that instead of giving you opinionated ready-made components, it only provides a set of CSS utility classes(with opinionated defaults that can be changed) that usually represent a single CSS declaration(property and value). I think an example will be more useful here:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Styling example using Tailwind CSS utility classes, from the official website --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"bg-slate-900 hover:bg-slate-700 focus:outline-none focus:ring-2 focus:ring-slate-400 focus:ring-offset-2 focus:ring-offset-slate-50 text-white font-semibold h-12 px-6 rounded-lg w-full flex items-center justify-center sm:w-auto dark:bg-sky-500 dark:highlight-white/20 dark:hover:bg-sky-400"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Get started
&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see in the above example, the styling for the link element is done by using a bunch of utility classes instead of a single class and CSS styles.&lt;/p&gt;

&lt;p&gt;I picked the above example on purpose. You may think: why would someone use this approach? Doesn't this look like tech debt for  future maintainers?&lt;/p&gt;

&lt;p&gt;Yes and no. Each tool has its advantages and disadvantages. We will cover them in this article.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tailwind CSS cons
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Lengthy Class Attributes(as in above example or multiple memes on socials, like &lt;iframe class="tweet-embed" id="tweet-1745394119889801454-699" src="https://platform.twitter.com/embed/Tweet.html?id=1745394119889801454"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1745394119889801454-699');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1745394119889801454&amp;amp;theme=dark"
  }



 ). This makes the maintenance more difficult in the long run and "pollutes" the HTML, making it harder to read and more prominent in size.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learning curve - if you're not using Tailwind CSS daily(or never used it), you'll need some time to learn it. For example, what does &lt;code&gt;px-6&lt;/code&gt; mean?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Additional tooling - yes, you'll need to install a few more dependencies in your project. IMHO, this is fine, as nowadays, scaling with what the platform provides is very hard for more complex projects. "CSS only" approach can be more than enough for small projects, though&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hard to debug - Maybe it's only me, but I really like it when I inspect an element and see all its styles. Here are two examples to illustrate better the struggle:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1qfwxyak4v6ttwt7g9n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1qfwxyak4v6ttwt7g9n.png" width="692" height="493"&gt;&lt;/a&gt;&lt;br&gt;Debugging styles with Tailwind CSS
  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fossyu8smrd2cconb0alr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fossyu8smrd2cconb0alr.png" width="800" height="247"&gt;&lt;/a&gt;&lt;br&gt;Debugging styles alternative solutions
  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;And a sneaky one: when you start working with Tailwind CSS and it feels like CSS, the order of class attributes does not matter, as the position in the final CSS files is what actually matters. An example would be: &lt;code&gt;px-2 px-4&lt;/code&gt;. Which one will be applied? There is a high chance that it is not the last, as the class order does not matter.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If Tailwind CSS is that bad, then why do people use it?&lt;br&gt;
Let's discuss the Pros now :)&lt;/p&gt;

&lt;h2&gt;
  
  
  Why use Tailwind CSS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;performance via PurgeCSS - It all started when I saw this video: &lt;a href="https://youtu.be/WxPtYJRjLL0?si=EzPcneUXthQ73XfA&amp;amp;t=1718"&gt;https://youtu.be/WxPtYJRjLL0?si=EzPcneUXthQ73XfA&amp;amp;t=1718&lt;/a&gt;. I really wanted a solution that would ship only the CSS that is used, ideally composed of multiple utility classes. That's why, despite all the ugly classes we saw earlier, I decided to learn and use Tailwind CSS. Fast forward four years, Meta released &lt;a href="https://stylexjs.com/"&gt;styleX&lt;/a&gt;, but I think it's too late, as there are many similar established solutions already.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I don't need to think about the name of the class - a huge one for me. I don't want to spend mental effort to name my classes, which other engineers can interpret differently. Also, I hate when I need to do &lt;code&gt;.containerWrapper&lt;/code&gt; or any other wrappers just to adjust the grid, spacings, or other small things. And yes, I know about CSS modules, but you still need to come up with a name there.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;documentation - Tailwind CSS has great docs, that are easy to navigate and search, and each utility class is well documented. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;highly customisable - each aspect of the Tailwind CSS can be customised. This can be achieved by updating the Tailwind CSS config file. You can go beyond and extend it with plugins as well(in case some of the utilities are missing)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;style colocation with markup - when I update the UI, I don't need to worry that I will accidentally break something somewhere because the CSS class has been reused. The same can be achieved with other tools, like CSS-in-JS libraries or CSS methodologies like &lt;a href="https://getbem.com/"&gt;BEM&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;not coupled to a specific framework/UI library - I can use Tailwind CSS with plain HTML, React, Laravel, RoR, Vue, Solid, Svelte... You got the point ;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;development speed - very subjective, but I feel that you can move faster once you've learned how to use the utility classes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI ready - You can ask ChatGPT to build a component and style it with Tailwind CSS, and it will do it. There are also amazing projects like &lt;a href="https://v0.dev/"&gt;https://v0.dev/&lt;/a&gt; that leverage AI to boost your productivity when building apps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ecosystem - with almost &lt;a href="https://www.npmjs.com/package/tailwindcss"&gt;8M weekly downloads on npm&lt;/a&gt;, Tailwind CSS has a huge ecosystem of ready-to-use templates, UI kits or libraries that can boost productivity or solve some of the Tailwind CSS issues.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Packages you may want to use with Tailwind CSS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/tailwindlabs/tailwindcss-intellisense"&gt;https://github.com/tailwindlabs/tailwindcss-intellisense&lt;/a&gt; - big time saver, as I don't need to check docs all the time for values of a specific class. And it works with both vscode and neovim.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8klylech57jvzhig66v3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8klylech57jvzhig66v3.png" alt="Tailwind CSS autocomplete in VSCode" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhreghwagkj3k7jnwl9j4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhreghwagkj3k7jnwl9j4.png" alt="Tailwind CSS autocomplete in neovim" width="800" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/tailwindlabs/prettier-plugin-tailwindcss"&gt;https://github.com/tailwindlabs/prettier-plugin-tailwindcss&lt;/a&gt; - this plugin will help with automatic sorting for the class attribute in the same order that Tailwind orders them in your CSS. You can get a more in-depth explanation of how it works &lt;a href="https://tailwindcss.com/blog/automatic-class-sorting-with-prettier#how-classes-are-sorted"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://cva.style/docs"&gt;https://cva.style/docs&lt;/a&gt; - Remember the long list of classes from above? Well, if you're using a framework where you have reusable components, most of the time, your class list will be something like: &lt;code&gt;flex items-center&lt;/code&gt;, &lt;code&gt;grid grid-cols-3&lt;/code&gt;, &lt;code&gt;border border-gray-500 rounded-md shadow-md p-4&lt;/code&gt;, etc. The longest list will have your design system components. Please use this library to have a better way to manage classes and also enhance them with variants. You can also check out this awesome video: &lt;a href="https://www.youtube.com/watch?v=T-Zv73yZ_QI"&gt;https://www.youtube.com/watch?v=T-Zv73yZ_QI&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/dcastil/tailwind-merge"&gt;https://github.com/dcastil/tailwind-merge&lt;/a&gt; - This library can help merge Tailwind CSS classes without having conflicts. For example, the above unknown behaviour for &lt;code&gt;px-2 px-4&lt;/code&gt; will be more clear with &lt;code&gt;twMerge("px-2 px-4")&lt;/code&gt; as, in this case, it will result in only &lt;code&gt;px-4&lt;/code&gt; being rendered. Also, it's handy when you need to override some of the component styles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/lukeed/clsx"&gt;https://github.com/lukeed/clsx&lt;/a&gt; - It's not Tailwind CSS related, and most likely, you're using something like this already. This utility helps improve your long class list on your elements. The above example can look much more maintainable now:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;
      &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;clsx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;bg-slate-900 text-white font-semibold h-12 px-6 rounded-lg w-full flex items-center justify-center&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;focus:outline-none focus:ring-2 focus:ring-slate-400 focus:ring-offset-2 focus:ring-offset-slate-50&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hover:bg-slate-700&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sm:w-auto&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dark:bg-sky-500 dark:highlight-white/20 dark:hover:bg-sky-400&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;
    &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      Get started
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Move faster with ready made components
&lt;/h2&gt;

&lt;p&gt;Tailwind CSS community is huge. There are plenty of free and paid ready-to-use templates and UI kits that can save a lot of time when building a new project.&lt;br&gt;
I will highlight a few:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://ui.shadcn.com/"&gt;https://ui.shadcn.com/&lt;/a&gt; - &lt;a href="https://risingstars.js.org/2023/en#section-all"&gt;The hottest project of the 2023&lt;/a&gt;, a collection of UI components written in React, allowing customisable styling through Tailwind CSS. The source code for the provided components is added to your project, and you can freely customise and adjust it based on your needs. Very convenient! &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://daisyui.com/"&gt;https://daisyui.com/&lt;/a&gt; - The most popular component library for Tailwind CSS. You can use the components by utilising a set of predefined class lists, like in Bootstrap.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://tailwindui.com/"&gt;https://tailwindui.com/&lt;/a&gt; - Premium(paid) templates and components from the Tailwind CSS team, which can help build your next project much faster.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to get started
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Start with the basics and learn CSS first if you want to have the biggest benefits.&lt;/li&gt;
&lt;li&gt;When building UI, think about what CSS you need to apply and then just put the right Tailwind CSS class&lt;/li&gt;
&lt;li&gt;Don't be afraid to experiment. You can start with some simple UIs to understand if this tool can solve your problem or not&lt;/li&gt;
&lt;li&gt;Please, do not use &lt;a href="https://tailwindcss.com/docs/reusing-styles#extracting-classes-with-apply"&gt;@apply&lt;/a&gt;. You can write regular CSS&lt;/li&gt;
&lt;li&gt;Please, use something like &lt;a href="https://github.com/lukeed/clsx"&gt;clsx&lt;/a&gt;. Future you will thank you for that&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Tailwind CSS is a fantastic tool. Like any other tool out there, it may solve your problem, it may add more complexity, or it can be misused. It's up to you and your team to decide whether you want to use it. But you should try it, even if it's hard initially. &lt;br&gt;
Personally, I will continue to use it, as I find a lot of value in it, and I have already highlighted the main benefits that I get from it.&lt;/p&gt;

&lt;p&gt;If you like this post, don't forget to like and share it with your colleagues, and you're always welcome in the comments to share your experience with the Tailwind CSS.&lt;/p&gt;

</description>
      <category>tailwindcss</category>
      <category>webdev</category>
      <category>css</category>
    </item>
    <item>
      <title>Debugging Node.js like a PRO</title>
      <dc:creator>Mihail</dc:creator>
      <pubDate>Fri, 27 Oct 2023 11:34:31 +0000</pubDate>
      <link>https://dev.to/andonimihai/debugging-nodejs-like-a-pro-5cck</link>
      <guid>https://dev.to/andonimihai/debugging-nodejs-like-a-pro-5cck</guid>
      <description>&lt;p&gt;If you opened this post, you want to unlock the ultimate power of debugging node.js apps. I think you will agree that the &lt;code&gt;console.log&lt;/code&gt; is still the king. It's time you close the article now. Or not...&lt;/p&gt;

&lt;p&gt;The other day, I was trying to debug why a migration takes forever to run. Unfortunately, it was using a 3rd party package to do that, so I did not have direct access to the codebase(except by going to the &lt;code&gt;node_modules&lt;/code&gt; folder or GitHub). But even if I can open the code, of course, it's tough to understand it. &lt;/p&gt;

&lt;h3&gt;
  
  
  If there could be a way to hook into the code execution...
&lt;/h3&gt;

&lt;p&gt;Wait, there actually is. Just follow the official guide for &lt;a href="https://nodejs.org/en/docs/guides/debugging-getting-started"&gt;Debugging in node&lt;/a&gt;, and you're done. However, for some reason(I bet it has something to do with the &lt;code&gt;worker_threads&lt;/code&gt; or some child process) it didn't worked in my case. &lt;/p&gt;

&lt;p&gt;Another option would be to use the &lt;a href="https://code.visualstudio.com/docs/editor/debugging#_launchjson-attributes"&gt;.vscode/launch.json&lt;/a&gt; file, but I always find it painful to create and read.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can there be an even easier way to run debug mode for node?
&lt;/h3&gt;

&lt;p&gt;The answer is simple: YES. And this was the day when I found the &lt;code&gt;Debug: Toggle Auto Attach&lt;/code&gt; command in VS Code(my current editor of choice, as I can't finish my Neovim config 😀). Just press &lt;code&gt;Cmd(or Ctrl)+Shift+P&lt;/code&gt;, paste &lt;code&gt;Debug: Toggle Auto Attach&lt;/code&gt; and choose from one of the available modes: &lt;code&gt;Always&lt;/code&gt;, &lt;code&gt;Smart&lt;/code&gt;, &lt;code&gt;Only With Flag&lt;/code&gt;, &lt;code&gt;Disabled&lt;/code&gt;. You can read more about each option &lt;a href="https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_auto-attach"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;After selecting the option, all you have to do now is to restart your terminal in VS Code, add the breakpoint in your code, run the node script(via &lt;code&gt;node&lt;/code&gt;, &lt;code&gt;npm&lt;/code&gt;, &lt;code&gt;yarn&lt;/code&gt;, etc) and focus on identifying and solving the problem.&lt;/p&gt;

&lt;p&gt;For my case, I used the &lt;code&gt;Always&lt;/code&gt; option, as I wanted to have the debugger running for all the node processes that run in my terminal. This way, I was able to find and report the problem of why the migration ran slow(fetched too many rows because of a specific config option, which should not be the case). Once I was done, I chose &lt;code&gt;Disabled&lt;/code&gt; option and got back to the king of debugging, &lt;code&gt;console.log&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I hope you enjoyed the post and it was somewhat helpful.&lt;/p&gt;

</description>
      <category>node</category>
      <category>vscode</category>
      <category>debug</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
