<?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: Ishfaq Maknoo</title>
    <description>The latest articles on DEV Community by Ishfaq Maknoo (@imaknoo).</description>
    <link>https://dev.to/imaknoo</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%2F388752%2F2d334f93-2aca-4cd1-8537-15b02de141e2.png</url>
      <title>DEV Community: Ishfaq Maknoo</title>
      <link>https://dev.to/imaknoo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/imaknoo"/>
    <language>en</language>
    <item>
      <title>How to Update and Fix Vulnerabilities in Global Packages</title>
      <dc:creator>Ishfaq Maknoo</dc:creator>
      <pubDate>Sat, 12 Jul 2025 14:37:53 +0000</pubDate>
      <link>https://dev.to/imaknoo/how-to-update-and-fix-vulnerabilities-in-global-packages-2270</link>
      <guid>https://dev.to/imaknoo/how-to-update-and-fix-vulnerabilities-in-global-packages-2270</guid>
      <description>&lt;p&gt;If you're working on Javascript-based projects, chances are you've installed some packages globally-tools like eslint, nodemon, typescript and others. &lt;/p&gt;

&lt;p&gt;Over time it's easy to forget about these global packages. But here's the thing:they can became outdated and vulnerable to security issues. Just like local project dependencies, global packages need regular updates.&lt;/p&gt;

&lt;p&gt;Below are a few simple steps to help you check and update globally installed packages using npm and pnpm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check global installed packages
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# For npm
npm list -g --depth=0

# For pnpm
pnpm list -g --depth=0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This lists all globally installed packages along with their versions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check outdated Global packages
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# For npm
npm outdated -g --depth=0

# For pnpm
pnpm outdated -g
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This shows which global packages have versions available.&lt;/p&gt;

&lt;h2&gt;
  
  
  Update a specific Global package
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# For npm
npm i -g &amp;lt;package-name&amp;gt;

# For pnpm
pnpm update -g &amp;lt;package-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace  with the name of the package you want to update.&lt;/p&gt;

&lt;h2&gt;
  
  
  Update all Global packages at once
&lt;/h2&gt;

&lt;p&gt;If you want to update everything in one go, try: &lt;br&gt;
🐧 For Linux, macOS, and Git Bash (Unix Shells):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# For npm
npm outdated -g --parseable --depth=0 | cut -d: -f4 | xargs npm install -g

# For pnpm
npm outdated -g --parseable --depth=0 | cut -d: -f4 | xargs pnpm update -g
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🪟 For Windows PowerShell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# For npm
npm outdated -g --depth=0 | ForEach-Object {
  ($_ -split '\s+')[0] | ForEach-Object { npm install -g $_ }
}

# For pnpm
npm outdated -g --depth=0 | ForEach-Object {
  ($_ -split '\s+')[0] | ForEach-Object { pnpm update -g $_ }
}

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

&lt;/div&gt;



&lt;p&gt;This command will find all outdated global packages and update them automatically.&lt;/p&gt;

&lt;p&gt;Keeping global packages up to date helps you avoid bugs, take advantage of new features, and—most importantly—stay protected from known security vulnerabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  What About Yarn?
&lt;/h3&gt;

&lt;p&gt;Yarn (especially v2 and above) doesn’t support global packages the same way as npm or pnpm. Instead, it encourages using tools per project to avoid conflicts.&lt;/p&gt;

&lt;p&gt;If you want to run a CLI tool with Yarn, use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn dlx &amp;lt;package-name&amp;gt;
yarn dlx create-vite

yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Details
&lt;/h4&gt;

&lt;p&gt;This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.&lt;/p&gt;

&lt;p&gt;By default Yarn will download the package named command, but this can be changed through the use of the -p,--package flag which will instruct Yarn to still run the same command but from a different package.&lt;/p&gt;

&lt;p&gt;Using yarn dlx as a replacement of yarn add isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through dlx - neither their name, nor their version).&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>vulnerabilities</category>
      <category>npm</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Angular Dev Tools</title>
      <dc:creator>Ishfaq Maknoo</dc:creator>
      <pubDate>Wed, 19 May 2021 09:52:12 +0000</pubDate>
      <link>https://dev.to/imaknoo/angular-dev-tools-2bbd</link>
      <guid>https://dev.to/imaknoo/angular-dev-tools-2bbd</guid>
      <description>&lt;p&gt;⚡ We now have Angular &lt;code&gt;Chrome Developer Tools&lt;/code&gt;, a new way to debug angular apps ⚡&lt;/p&gt;

&lt;p&gt;Easily navigate between component hierarchy, &lt;code&gt;properties&lt;/code&gt; &lt;code&gt;directives&lt;/code&gt; and more,&lt;/p&gt;

&lt;p&gt;We can deliberately update property value from &lt;code&gt;Angular Dev Tools&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The Angular Developer tools support on &lt;code&gt;Angular Version 9+&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Install now to:&lt;br&gt;
‣ Visualize the structure of your apps&lt;br&gt;
‣ Explore, inspect &amp;amp; edit components Left-pointing magnifying glass&lt;br&gt;
‣ Profile performance Bar chart&lt;/p&gt;

&lt;p&gt;Install here → [&lt;a href="http://goo.gle/install-angular-devtools" rel="noopener noreferrer"&gt;http://goo.gle/install-angular-devtools&lt;/a&gt;]&lt;br&gt;
Read Full Documentation → [&lt;a href="https://angular.io/guide/devtools" rel="noopener noreferrer"&gt;https://angular.io/guide/devtools&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa7repiltf8xanybj0ar1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa7repiltf8xanybj0ar1.gif" alt="Trulli" width="600" height="378"&gt;&lt;/a&gt;&lt;br&gt;Chrome Angular Developer Tool
  &lt;/p&gt;

</description>
      <category>angular</category>
      <category>dev</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Create Float labels with few lines of CSS only</title>
      <dc:creator>Ishfaq Maknoo</dc:creator>
      <pubDate>Tue, 20 Apr 2021 09:46:49 +0000</pubDate>
      <link>https://dev.to/imaknoo/create-float-labels-with-few-lines-of-css-only-4208</link>
      <guid>https://dev.to/imaknoo/create-float-labels-with-few-lines-of-css-only-4208</guid>
      <description>&lt;p&gt;When it has to create stylish form, we always want to style our input tags to give the best look and feel,&lt;/p&gt;

&lt;p&gt;Let's write few lines of code to make this magic happen,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="group"&amp;gt;
  &amp;lt;input type="text" required&amp;gt;
  &amp;lt;label&amp;gt;Name&amp;lt;/label&amp;gt;
&amp;lt;/div&amp;gt;

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

&lt;/div&gt;



&lt;p&gt;This is all for our markup,&lt;/p&gt;

&lt;p&gt;Simple and easy, one div tag wrapping our input tag and label, &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt; use &lt;code&gt;required&lt;/code&gt; attribute on &lt;code&gt;input&lt;/code&gt;, and make sure &lt;code&gt;label&lt;/code&gt; goes under &lt;code&gt;input&lt;/code&gt; tag, for the best practices I am using the &lt;code&gt;label&lt;/code&gt;, it could be anything &lt;code&gt;span&lt;/code&gt; etc,&lt;/p&gt;

&lt;p&gt;so far so good, let's wrap up with adding few styles to make it stand out&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.group{
  position:relative;
  margin:20px;
 }
.group input {
  padding:12px;
  width:300px;
  border:1px solid #ddd;
  outline:none;
  font-family:inherit;
  font-size:16px;
}
.group label{
 position: absolute;
 top:13px;
 left:12px;
 font-size:16px;
 pointer-events:none;
 transition: all 0.3s ease;
}
input:focus + label, input:valid + label{
 top: -11px;
 background-color: #fff;
 padding: 2px 4px;
 color: #54565d;
 font-size: 13px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;That's it no javascript, simple and easy...&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let's understand what we did here, &lt;/p&gt;

&lt;p&gt;For the &lt;code&gt;.group&lt;/code&gt; class we have added position to relative and some spacing around it, &lt;/p&gt;

&lt;p&gt;For the &lt;code&gt;input&lt;/code&gt; tag we did some basic styling which is self-understood,&lt;/p&gt;

&lt;p&gt;For the &lt;code&gt;label&lt;/code&gt; we have added position to &lt;code&gt;absolute&lt;/code&gt; so that it can move relative to parent &lt;code&gt;group&lt;/code&gt; class, and set position from left and top, &lt;/p&gt;

&lt;p&gt;&lt;code&gt;pointer-events:none;&lt;/code&gt; is used to prevent click on label part, &amp;amp; we have used &lt;code&gt;transition&lt;/code&gt; to allow smoothness,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;input:focus + label&lt;/code&gt;, &lt;code&gt;input:valid + label&lt;/code&gt;&lt;br&gt;
when we click on &lt;code&gt;input&lt;/code&gt; we are adding &lt;code&gt;label&lt;/code&gt; to float our label upside using &lt;code&gt;top: -11px&lt;/code&gt;, &lt;br&gt;
and if the &lt;code&gt;input:valid&lt;/code&gt; label styles will remain as it is,&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you have covered till now, then I must say you have got good patience ;) &lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/imaknoo/pen/GRrYqwE" rel="noopener noreferrer"&gt;https://codepen.io/imaknoo/pen/GRrYqwE&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>label</category>
    </item>
    <item>
      <title>let's start git from basics</title>
      <dc:creator>Ishfaq Maknoo</dc:creator>
      <pubDate>Tue, 30 Mar 2021 09:45:57 +0000</pubDate>
      <link>https://dev.to/imaknoo/let-s-start-git-from-basics-1cb3</link>
      <guid>https://dev.to/imaknoo/let-s-start-git-from-basics-1cb3</guid>
      <description>&lt;p&gt;What is git?&lt;/p&gt;

&lt;p&gt;Well according to Wikipedia, git is software for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows (thousands of parallel branches running on different systems),&lt;/p&gt;

&lt;p&gt;Enough theory, let's start doing some practical stuff, &lt;/p&gt;

&lt;p&gt;Step 01:- Visit &lt;a href="https://github.com/login" rel="noopener noreferrer"&gt;https://github.com/login&lt;/a&gt; to log in or create a new account,&lt;/p&gt;

&lt;p&gt;Step 02:- &lt;a href="https://github.com/new" rel="noopener noreferrer"&gt;https://github.com/new&lt;/a&gt; to create a new repository, I have created one as todolist (if you already have created one, feel free to skip this step)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyuhpsy1c0pq4ejuj79yo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyuhpsy1c0pq4ejuj79yo.png" alt="image" width="785" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note:- You can either make the repository publically accessible or keep it private, &lt;/p&gt;

&lt;p&gt;Hit the create repository button, and you are all set...&lt;/p&gt;

&lt;p&gt;Congratulations you have created a new repository on GitHub,&lt;/p&gt;

&lt;p&gt;Step 03:- Time to commit your local changes (from your local machine to GitHub)&lt;/p&gt;

&lt;p&gt;From your local machine open your favourite terminal, I am using windows I have PowerShell opened, &lt;/p&gt;

&lt;p&gt;Navigate your repository,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0uln2gty9lvygo0odiho.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0uln2gty9lvygo0odiho.png" alt="image" width="800" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;git init (Initialized empty Git repository in your working directory)&lt;/p&gt;

&lt;p&gt;git remote add origin(add new remote in my case it is, &lt;a href="https://github.com/ishfaqmaknoo/todolist" rel="noopener noreferrer"&gt;https://github.com/ishfaqmaknoo/todolist&lt;/a&gt; )&lt;/p&gt;

&lt;p&gt;git status (displays the state of the working directory)&lt;/p&gt;

&lt;p&gt;So far so good, now let's add few more commands to push our code from local to staging to the remote repository&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0zuukqtyv1pvrvwq4yoj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0zuukqtyv1pvrvwq4yoj.png" alt="image" width="483" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;git add . (adds all the files to staging area)&lt;/p&gt;

&lt;p&gt;we can also add each file manually by doing &lt;br&gt;
(git add main.js ) this will add only the main.js file to the staging area,&lt;/p&gt;

&lt;p&gt;let's finally push our local changes to the remote repository&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ghrcsvf8aqnsmb0t60p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ghrcsvf8aqnsmb0t60p.png" alt="image" width="689" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;git commit -m (Takes the staged snapshot and commits it to the project history. Combined with git add, this defines the basic workflow for all Git users.)&lt;/p&gt;

&lt;p&gt;git push origin master (You are ready to push your first commit to the remote repository. ) &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupjcgw4j49baaih35sb5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupjcgw4j49baaih35sb5.png" alt="image" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congrats, we are done with the big picture...&lt;/p&gt;

&lt;p&gt;Commands:- Get used to these basic commands,&lt;/p&gt;

&lt;p&gt;git init&lt;br&gt;
git status&lt;br&gt;
git add . &lt;br&gt;
git commit -m "commit message"&lt;br&gt;
git push origin master&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
    </item>
  </channel>
</rss>
