<?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: Marin-Eusebiu Șerban</title>
    <description>The latest articles on DEV Community by Marin-Eusebiu Șerban (@marin_eusebiu_serban).</description>
    <link>https://dev.to/marin_eusebiu_serban</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%2F1627132%2Ffb4a97d7-9c09-4848-ac7d-975d2b00ab46.jpeg</url>
      <title>DEV Community: Marin-Eusebiu Șerban</title>
      <link>https://dev.to/marin_eusebiu_serban</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marin_eusebiu_serban"/>
    <language>en</language>
    <item>
      <title>How One Package Manager Library Inspired Me to Build My Own🚀</title>
      <dc:creator>Marin-Eusebiu Șerban</dc:creator>
      <pubDate>Mon, 03 Feb 2025 19:09:02 +0000</pubDate>
      <link>https://dev.to/marin_eusebiu_serban/how-one-package-manager-library-inspired-me-to-build-my-own-5796</link>
      <guid>https://dev.to/marin_eusebiu_serban/how-one-package-manager-library-inspired-me-to-build-my-own-5796</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;TL;DR&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Picture this&lt;/strong&gt;: You open your project, ready to build something awesome, and iCloud pops up with that dreaded "Your storage is almost full" message. Enter FNSPM, your new best friend that renames &lt;strong&gt;node_modules&lt;/strong&gt; to &lt;strong&gt;node_modules.nosync&lt;/strong&gt; and politely tells iCloud to chill. It automatically detects whether you're using &lt;strong&gt;npm, yarn, pnpm, bun&lt;/strong&gt;, or &lt;strong&gt;deno&lt;/strong&gt;, so you can just keep typing the same commands and flags you already know. No more giant backups, no more memorizing different CLIs - just you, your code, and a peaceful iCloud experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Frustration 💢 &amp;amp; The Spark ✨&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;It all started when I was ready to code away on a personal project. Suddenly, iCloud decided to max out on storage because of my ever-growing node_modules folder. I stumbled upon &lt;strong&gt;nosync-icloud&lt;/strong&gt;, which was great - except it didn't support &lt;strong&gt;Bun&lt;/strong&gt;. I had to manually create a node_modules.nosync folder each time, and my frustration led me to create &lt;strong&gt;FNSPM (Fast No Sync Package Manager)&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Meet FNSPM 🚀&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.npmjs.com/package/fnspm" rel="noopener noreferrer"&gt;FNSPM&lt;/a&gt;&lt;/strong&gt; is a simple, unified tool that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Auto-Detect&lt;/strong&gt;: Figures out whether you're using npm, yarn, pnpm, Bun, or Deno by scanning lock files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No More iCloud Blues&lt;/strong&gt;: Instantly renames node_modules to node_modules.nosync, stopping iCloud from blowing up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Native Commands&lt;/strong&gt;: Reuses each manager's existing flags and commands, so you don't have to learn anything new.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Installation &amp;amp; Basic Usage&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Install FNSPM globally:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; fnspm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Initialize your project:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;fnspm initialize
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  That's it! You can now run:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;fnspm &lt;span class="nb"&gt;install &lt;/span&gt;lodash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;FNSPM&lt;/strong&gt; automatically figures out which manager to use. Or specify one yourself:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;fnspm &lt;span class="nt"&gt;--pm&lt;/span&gt; bun &lt;span class="nb"&gt;install &lt;/span&gt;lodash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Pro tip&lt;/strong&gt;: Use the same flags and commands you're used to. FNSPM translates them behind the scenes.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Making Life Easier on macOS&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;By renaming node_modules to a .nosync folder and using symlinks, FNSPM keeps iCloud from uploading massive directories.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It also saves you from the dreaded "Your iCloud storage is full" pop-ups in the middle of coding.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;📜 License &amp;amp; Disclaimer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;FNSPM is open source (GPL-3.0) and meant for &lt;strong&gt;educational, non-commercial use&lt;/strong&gt;. Feel free to use it in personal projects like any other package manager - just keep in mind it's still under active development, so some kinks might remain.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;💭 Final Thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you're tired of iCloud sync surprises or juggling different package managers, give FNSPM a try. It may not fix your love–hate relationship with Apple entirely, but at least it'll save you some headaches along the way!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author&lt;/strong&gt;: &lt;a href="https://buymeacoffee.com/serban_marin_eusebiu" rel="noopener noreferrer"&gt;Marin-Eusebiu Șerban&lt;/a&gt; • &lt;a href="https://github.com/sebytza23/Fast-No-Sync-Package-Manager" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;🧑🏻‍💻 Happy coding&lt;/strong&gt; - no more "&lt;strong&gt;iCloud Full&lt;/strong&gt;"&lt;/p&gt;

</description>
      <category>npm</category>
      <category>cloud</category>
      <category>bunjs</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
