Uninstall Node.js prompt
๐ฆ Node.js->AI phrase
โจ The Prompt Phrase
Please uninstall Node.js prompt using the PowerShell command line.
๐ป Code Preview
๐ฆ All-in-One Code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>๐๏ธ Node.js Uninstall Guide</title>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700;800&family=Fira+Code:wght@400;500&display=swap" rel="stylesheet">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--node: #68a063;
--cyan: #06b6d4;
--purple: #8b5cf6;
--pink: #ec4899;
--orange: #f97316;
--yellow: #fbbf24;
--blue: #3b82f6;
--green: #10b981;
--red: #ef4444;
--bg: #0a0e1a;
--card: #151b2e;
--text: #e2e8f0;
}
body {
font-family: 'Poppins', sans-serif;
background: var(--bg);
color: var(--text);
min-height: 100vh;
overflow-x: hidden;
}
/* Animated background */
.bg-animation {
position: fixed;
inset: 0;
z-index: -1;
overflow: hidden;
}
.float-icon {
position: absolute;
font-size: 2.5rem;
opacity: 0.06;
animation: floatAround 25s infinite ease-in-out;
}
@keyframes floatAround {
0%, 100% { transform: translate(0, 0) rotate(0deg); }
25% { transform: translate(80px, -80px) rotate(90deg); }
50% { transform: translate(150px, 60px) rotate(180deg); }
75% { transform: translate(-60px, 120px) rotate(270deg); }
}
.orb {
position: absolute;
border-radius: 50%;
filter: blur(100px);
opacity: 0.12;
animation: orbFloat 35s ease-in-out infinite;
}
@keyframes orbFloat {
0%, 100% { transform: translate(0, 0) scale(1); }
50% { transform: translate(120px, -80px) scale(1.4); }
}
/* Progress bar */
.progress {
position: fixed;
top: 0;
left: 0;
height: 4px;
background: linear-gradient(90deg, var(--red), var(--orange), var(--yellow));
z-index: 1000;
transition: width 0.2s;
}
/* Header */
header {
text-align: center;
padding: 70px 20px 50px;
position: relative;
}
.logo-container {
display: flex;
justify-content: center;
align-items: center;
gap: 20px;
margin-bottom: 35px;
flex-wrap: wrap;
}
.uninstall-icon {
width: 120px;
height: 120px;
background: linear-gradient(135deg, var(--red), var(--orange));
border-radius: 26px;
display: flex;
align-items: center;
justify-content: center;
font-size: 4rem;
cursor: pointer;
transition: all 0.3s;
box-shadow: 0 20px 60px rgba(239, 68, 68, 0.4);
animation: iconPulse 4s ease-in-out infinite;
position: relative;
overflow: hidden;
}
@keyframes iconPulse {
0%, 100% { transform: scale(1) rotate(0deg); }
50% { transform: scale(1.08) rotate(-5deg); }
}
.uninstall-icon::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(45deg, transparent, rgba(255,255,255,0.3), transparent);
animation: shine 4s infinite;
}
@keyframes shine {
0% { transform: translateX(-100%) rotate(45deg); }
100% { transform: translateX(200%) rotate(45deg); }
}
.uninstall-icon:hover {
transform: scale(1.15) rotate(10deg);
box-shadow: 0 30px 80px rgba(239, 68, 68, 0.6);
}
.warning-badge {
background: rgba(239, 68, 68, 0.15);
border: 2px solid var(--red);
border-radius: 14px;
padding: 12px 25px;
font-family: 'Fira Code', monospace;
font-size: 0.9rem;
animation: warningPulse 3s ease-in-out infinite;
color: var(--red);
font-weight: 600;
}
@keyframes warningPulse {
0%, 100% { box-shadow: 0 0 20px rgba(239, 68, 68, 0.3); }
50% { box-shadow: 0 0 40px rgba(239, 68, 68, 0.6); }
}
h1 {
font-size: clamp(2rem, 6vw, 3.5rem);
font-weight: 800;
background: linear-gradient(135deg, var(--red), var(--orange), var(--yellow));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 18px;
line-height: 1.2;
}
.subtitle {
color: #64748b;
font-size: 1.2rem;
max-width: 700px;
margin: 0 auto;
}
/* Main container */
main {
max-width: 1100px;
margin: 0 auto;
padding: 20px;
}
.section {
margin-bottom: 55px;
opacity: 0;
transform: translateY(50px);
transition: all 0.8s ease-out;
}
.section.vis {
opacity: 1;
transform: translateY(0);
}
.sec-title {
display: flex;
align-items: center;
gap: 18px;
font-size: 1.7rem;
font-weight: 700;
margin-bottom: 22px;
}
.sec-icon {
width: 56px;
height: 56px;
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.6rem;
animation: iconBounce 3s ease-in-out infinite;
}
@keyframes iconBounce {
0%, 100% { transform: translateY(0) rotate(-3deg); }
50% { transform: translateY(-8px) rotate(3deg); }
}
/* Cards */
.card {
background: var(--card);
border-radius: 22px;
padding: 32px;
margin-bottom: 24px;
border: 1px solid rgba(255,255,255,0.08);
transition: all 0.3s;
position: relative;
overflow: hidden;
}
.card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 5px;
background: linear-gradient(90deg, var(--red), var(--orange), var(--yellow));
}
.card:hover {
transform: translateY(-8px);
box-shadow: 0 30px 70px rgba(0,0,0,0.4);
border-color: var(--orange);
}
.card h3 {
color: var(--orange);
margin-bottom: 18px;
font-size: 1.4rem;
display: flex;
align-items: center;
gap: 12px;
}
.card p {
color: #94a3b8;
line-height: 1.9;
margin-bottom: 16px;
}
/* OS Tabs */
.os-tabs {
display: flex;
gap: 12px;
margin-bottom: 25px;
flex-wrap: wrap;
justify-content: center;
}
.os-tab {
background: var(--card);
padding: 16px 28px;
border-radius: 14px;
border: 2px solid rgba(255,255,255,0.1);
cursor: pointer;
transition: all 0.3s;
display: flex;
align-items: center;
gap: 10px;
font-weight: 600;
}
.os-tab:hover {
border-color: var(--orange);
transform: translateY(-3px);
}
.os-tab.active {
background: linear-gradient(135deg, var(--orange), var(--yellow));
border-color: var(--orange);
color: #000;
box-shadow: 0 10px 30px rgba(249, 115, 22, 0.4);
}
.os-icon {
font-size: 1.5rem;
}
/* Content panels */
.os-content {
display: none;
}
.os-content.active {
display: block;
animation: fadeIn 0.5s ease-out;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
/* Code blocks */
.code-block {
background: #0a0f1a;
border-radius: 18px;
overflow: hidden;
margin: 22px 0;
border: 1px solid rgba(255,255,255,0.08);
box-shadow: 0 15px 45px rgba(0,0,0,0.4);
}
.code-header {
background: rgba(0,0,0,0.4);
padding: 16px 22px;
display: flex;
align-items: center;
justify-content: space-between;
}
.code-dots {
display: flex;
gap: 8px;
}
.dot {
width: 13px;
height: 13px;
border-radius: 50%;
cursor: pointer;
transition: all 0.2s;
}
.dot:hover { transform: scale(1.4); }
.dot.r { background: #ff5f56; }
.dot.y { background: #ffbd2e; }
.dot.g { background: #27ca40; }
.code-lang {
color: var(--orange);
font-size: 0.9rem;
font-weight: 600;
font-family: 'Fira Code', monospace;
}
.code-copy {
background: rgba(255,255,255,0.1);
border: none;
padding: 8px 18px;
border-radius: 8px;
color: var(--text);
cursor: pointer;
font-size: 0.85rem;
transition: all 0.3s;
font-weight: 600;
}
.code-copy:hover {
background: var(--orange);
transform: translateY(-2px);
color: #000;
}
.code-copy.copied { background: var(--green); }
.code-body {
padding: 24px;
font-family: 'Fira Code', monospace;
font-size: 0.9rem;
line-height: 2;
overflow-x: auto;
}
.kw { color: var(--purple); }
.str { color: var(--yellow); }
.num { color: var(--orange); }
.func { color: var(--cyan); }
.comment { color: #6b7280; font-style: italic; }
.var { color: var(--pink); }
/* Steps */
.steps {
display: flex;
flex-direction: column;
gap: 18px;
}
.step {
display: flex;
gap: 20px;
padding: 24px;
background: rgba(255,255,255,0.02);
border-radius: 16px;
border: 1px solid rgba(255,255,255,0.06);
cursor: pointer;
transition: all 0.3s;
}
.step:hover {
transform: translateX(12px);
border-color: var(--orange);
background: rgba(249, 115, 22, 0.1);
}
.step-num {
width: 48px;
height: 48px;
border-radius: 50%;
background: linear-gradient(135deg, var(--red), var(--orange));
display: flex;
align-items: center;
justify-content: center;
font-weight: 800;
flex-shrink: 0;
font-size: 1.2rem;
box-shadow: 0 8px 25px rgba(239, 68, 68, 0.4);
}
.step-content h4 {
margin-bottom: 8px;
color: var(--text);
font-size: 1.1rem;
}
.step-content p {
color: #64748b;
font-size: 0.95rem;
margin: 0;
line-height: 1.6;
}
/* Info boxes */
.info {
padding: 22px;
border-radius: 16px;
margin: 20px 0;
display: flex;
gap: 16px;
align-items: flex-start;
}
.info.warn {
background: rgba(239, 68, 68, 0.12);
border-left: 4px solid var(--red);
}
.info.tip {
background: rgba(251, 191, 36, 0.12);
border-left: 4px solid var(--yellow);
}
.info.important {
background: rgba(249, 115, 22, 0.12);
border-left: 4px solid var(--orange);
}
.info.cool {
background: rgba(6, 182, 212, 0.12);
border-left: 4px solid var(--cyan);
}
.info-icon {
font-size: 1.5rem;
flex-shrink: 0;
animation: iconWiggle 2s ease-in-out infinite;
}
@keyframes iconWiggle {
0%, 100% { transform: rotate(0deg); }
25% { transform: rotate(-10deg); }
75% { transform: rotate(10deg); }
}
/* Checklist */
.checklist {
background: rgba(255,255,255,0.02);
border-radius: 16px;
padding: 24px;
margin: 20px 0;
}
.checklist-title {
font-size: 1.2rem;
font-weight: 700;
color: var(--orange);
margin-bottom: 18px;
}
.checklist-item {
display: flex;
align-items: center;
gap: 14px;
padding: 14px;
margin-bottom: 10px;
background: var(--card);
border-radius: 12px;
cursor: pointer;
transition: all 0.3s;
border: 2px solid transparent;
}
.checklist-item:hover {
border-color: var(--orange);
transform: translateX(8px);
}
.checklist-item.checked {
background: rgba(16, 185, 129, 0.1);
border-color: var(--green);
}
.checkbox {
width: 28px;
height: 28px;
border-radius: 8px;
border: 2px solid rgba(255,255,255,0.3);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition: all 0.3s;
}
.checklist-item.checked .checkbox {
background: var(--green);
border-color: var(--green);
}
/* Interactive simulator */
.simulator {
background: linear-gradient(135deg, rgba(239, 68, 68, 0.1), rgba(249, 115, 22, 0.1));
border-radius: 22px;
padding: 35px;
border: 2px solid rgba(239, 68, 68, 0.3);
margin: 28px 0;
}
.simulator-title {
font-size: 1.5rem;
font-weight: 700;
color: var(--yellow);
margin-bottom: 22px;
text-align: center;
}
.terminal {
background: #0a0f1a;
border-radius: 16px;
overflow: hidden;
margin: 22px 0;
box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.term-header {
background: rgba(0,0,0,0.4);
padding: 14px 22px;
display: flex;
align-items: center;
gap: 10px;
}
.term-title {
flex: 1;
text-align: center;
color: #64748b;
font-size: 0.9rem;
font-weight: 600;
}
.term-body {
padding: 24px;
font-family: 'Fira Code', monospace;
font-size: 0.9rem;
min-height: 200px;
max-height: 500px;
overflow-y: auto;
}
.term-line {
margin-bottom: 10px;
animation: lineAppear 0.3s ease-out;
}
@keyframes lineAppear {
from { opacity: 0; transform: translateX(-10px); }
to { opacity: 1; transform: translateX(0); }
}
.prompt {
color: var(--red);
font-weight: 600;
}
/* Buttons */
.btn-group {
display: flex;
gap: 14px;
justify-content: center;
flex-wrap: wrap;
margin: 24px 0;
}
.btn {
background: linear-gradient(135deg, var(--orange), var(--yellow));
border: none;
padding: 14px 30px;
border-radius: 14px;
color: #000;
font-weight: 700;
cursor: pointer;
transition: all 0.3s;
display: flex;
align-items: center;
gap: 10px;
font-size: 1rem;
}
.btn:hover {
transform: translateY(-3px);
box-shadow: 0 15px 40px rgba(249, 115, 22, 0.5);
}
.btn.danger {
background: linear-gradient(135deg, var(--red), var(--orange));
color: white;
}
.btn.secondary {
background: linear-gradient(135deg, var(--purple), var(--pink));
color: white;
}
/* Quiz */
.quiz {
background: linear-gradient(135deg, rgba(139, 92, 246, 0.1), rgba(236, 72, 153, 0.1));
border-radius: 22px;
padding: 32px;
border: 2px solid rgba(139, 92, 246, 0.3);
}
.quiz-q {
font-size: 1.25rem;
font-weight: 600;
margin-bottom: 24px;
}
.quiz-opts {
display: flex;
flex-direction: column;
gap: 14px;
}
.quiz-opt {
padding: 18px 24px;
background: var(--card);
border-radius: 14px;
cursor: pointer;
transition: all 0.3s;
border: 2px solid transparent;
display: flex;
align-items: center;
gap: 16px;
}
.quiz-opt:hover {
border-color: var(--purple);
transform: translateX(10px);
}
.quiz-opt.correct {
border-color: var(--green);
background: rgba(16, 185, 129, 0.2);
}
.quiz-opt.wrong {
border-color: var(--red);
background: rgba(239, 68, 68, 0.2);
}
.opt-letter {
width: 36px;
height: 36px;
border-radius: 50%;
background: rgba(255,255,255,0.1);
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
}
.quiz-result {
margin-top: 20px;
padding: 20px;
border-radius: 14px;
text-align: center;
font-weight: 600;
display: none;
}
.quiz-result.show {
display: block;
animation: slideUp 0.5s ease-out;
}
@keyframes slideUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
/* FAB */
.fab {
position: fixed;
bottom: 30px;
right: 30px;
width: 64px;
height: 64px;
border-radius: 50%;
background: linear-gradient(135deg, var(--red), var(--orange));
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.8rem;
color: white;
box-shadow: 0 15px 40px rgba(239, 68, 68, 0.5);
transition: all 0.3s;
z-index: 100;
opacity: 0;
visibility: hidden;
}
.fab.show { opacity: 1; visibility: visible; }
.fab:hover { transform: scale(1.2) rotate(15deg); }
/* Toast */
.toast {
position: fixed;
bottom: 120px;
left: 50%;
transform: translateX(-50%) translateY(120px);
background: var(--card);
padding: 18px 35px;
border-radius: 16px;
border: 2px solid var(--orange);
box-shadow: 0 20px 60px rgba(0,0,0,0.6);
transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
z-index: 1000;
opacity: 0;
max-width: 90%;
}
.toast.show {
transform: translateX(-50%) translateY(0);
opacity: 1;
}
/* Footer */
footer {
text-align: center;
padding: 50px 20px;
background: var(--card);
margin-top: 60px;
border-top: 1px solid rgba(255,255,255,0.08);
}
.footer-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-bottom: 20px;
}
.footer-icon {
width: 54px;
height: 54px;
border-radius: 50%;
background: rgba(255,255,255,0.08);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.6rem;
cursor: pointer;
transition: all 0.3s;
}
.footer-icon:hover {
background: var(--orange);
transform: translateY(-8px);
}
@media (max-width: 768px) {
.os-tabs { flex-direction: column; }
.btn-group { flex-direction: column; }
.btn { width: 100%; justify-content: center; }
h1 { font-size: 2rem; }
}
</style>
</head>
<body>
<div class="progress" id="progress"></div>
<div class="bg-animation" id="bgAnim"></div>
<header>
<div class="logo-container">
<div class="uninstall-icon" onclick="celebrate()">๐๏ธ</div>
<div class="warning-badge">โ ๏ธ UNINSTALL GUIDE</div>
</div>
<h1>Node.js Uninstall Guide</h1>
<p class="subtitle">Complete guide to safely remove Node.js from your system! ๐ ๏ธ</p>
</header>
<main>
<!-- Why Uninstall -->
<section class="section" id="why">
<div class="sec-title">
<div class="sec-icon" style="background: linear-gradient(135deg, var(--red), var(--orange));">โ</div>
<span>Why Uninstall Node.js?</span>
</div>
<div class="card">
<h3>๐ค Common Reasons</h3>
<p>There are several valid reasons to uninstall Node.js:</p>
<div class="info important">
<span class="info-icon">๐</span>
<div>
<strong>Version Conflicts:</strong>
<p>Installing a different version or switching to a version manager like nvm</p>
</div>
</div>
<div class="info important">
<span class="info-icon">๐งน</span>
<div>
<strong>Clean Installation:</strong>
<p>Starting fresh to fix corrupted installations or resolve issues</p>
</div>
</div>
<div class="info important">
<span class="info-icon">๐พ</span>
<div>
<strong>Free Up Space:</strong>
<p>Removing Node.js when you no longer need it for development</p>
</div>
</div>
</div>
</section>
<!-- Before You Start -->
<section class="section" id="before">
<div class="sec-title">
<div class="sec-icon" style="background: linear-gradient(135deg, var(--yellow), var(--orange));">โ ๏ธ</div>
<span>Before You Uninstall</span>
</div>
<div class="card">
<h3>๐ Pre-Uninstall Checklist</h3>
<p>Complete these steps before uninstalling:</p>
<div class="checklist">
<div class="checklist-title">โ
Important Steps</div>
<div class="checklist-item" onclick="toggleCheck(this)">
<div class="checkbox">โ</div>
<div>
<strong>Backup Projects:</strong> Save all your Node.js projects
</div>
</div>
<div class="checklist-item" onclick="toggleCheck(this)">
<div class="checkbox">โ</div>
<div>
<strong>Note Global Packages:</strong> List installed global npm packages
</div>
</div>
<div class="checklist-item" onclick="toggleCheck(this)">
<div class="checkbox">โ</div>
<div>
<strong>Close Applications:</strong> Close all Node.js related apps
</div>
</div>
<div class="checklist-item" onclick="toggleCheck(this)">
<div class="checkbox">โ</div>
<div>
<strong>Check Version:</strong> Note your current Node.js version
</div>
</div>
</div>
<div class="code-block">
<div class="code-header">
<div class="code-dots">
<div class="dot r"></div>
<div class="dot y"></div>
<div class="dot g"></div>
</div>
<span class="code-lang">List Global Packages</span>
<button class="code-copy" onclick="copyCode(this, 'npm list -g --depth=0')">Copy</button>
</div>
<div class="code-body">
<span class="comment"># List all globally installed packages</span><br>
<span class="func">npm</span> list -g --depth=<span class="num">0</span>
</div>
</div>
<div class="info warn">
<span class="info-icon">โ ๏ธ</span>
<div>
<strong>Warning:</strong>
<p>Uninstalling Node.js will remove npm and all global packages. Make sure to backup any important data!</p>
</div>
</div>
</div>
</section>
<!-- OS-Specific Instructions -->
<section class="section" id="instructions">
<div class="sec-title">
<div class="sec-icon" style="background: linear-gradient(135deg, var(--orange), var(--yellow));">๐ป</div>
<span>Uninstall Instructions</span>
</div>
<div class="card">
<h3>๐ฅ๏ธ Choose Your Operating System</h3>
<p>Select your OS for specific uninstall instructions:</p>
<div class="os-tabs">
<div class="os-tab active" onclick="switchOS('windows')">
<span class="os-icon">๐ช</span>
<span>Windows</span>
</div>
<div class="os-tab" onclick="switchOS('mac')">
<span class="os-icon">๐</span>
<span>macOS</span>
</div>
<div class="os-tab" onclick="switchOS('linux')">
<span class="os-icon">๐ง</span>
<span>Linux</span>
</div>
</div>
<!-- Windows Instructions -->
<div class="os-content active" id="windows">
<h4 style="color: var(--cyan); margin: 20px 0 15px; font-size: 1.2rem;">๐ช Windows Uninstall</h4>
<div class="steps">
<div class="step" onclick="showToast('Step 1: Open Settings')">
<div class="step-num">1</div>
<div class="step-content">
<h4>Open Settings</h4>
<p>Press <kbd style="background: var(--card); padding: 2px 8px; border-radius: 4px;">Win + I</kbd> to open Windows Settings</p>
</div>
</div>
<div class="step" onclick="showToast('Step 2: Navigate to Apps')">
<div class="step-num">2</div>
<div class="step-content">
<h4>Go to Apps</h4>
<p>Click on "Apps" โ "Apps & features"</p>
</div>
</div>
<div class="step" onclick="showToast('Step 3: Find Node.js')">
<div class="step-num">3</div>
<div class="step-content">
<h4>Search for Node.js</h4>
<p>Type "Node.js" in the search box</p>
</div>
</div>
<div class="step" onclick="showToast('Step 4: Uninstall')">
<div class="step-num">4</div>
<div class="step-content">
<h4>Uninstall</h4>
<p>Click on Node.js โ Click "Uninstall" โ Confirm</p>
</div>
</div>
</div>
<div class="info tip">
<span class="info-icon">๐ก</span>
<div>
<strong>Alternative Method:</strong>
<p>You can also uninstall from Control Panel โ Programs โ Uninstall a program</p>
</div>
</div>
<h4 style="color: var(--cyan); margin: 30px 0 15px; font-size: 1.1rem;">๐งน Clean Up Remaining Files</h4>
<div class="code-block">
<div class="code-header">
<div class="code-dots">
<div class="dot r"></div>
<div class="dot y"></div>
<div class="dot g"></div>
</div>
<span class="code-lang">Delete Folders (PowerShell)</span>
<button class="code-copy" onclick="copyCode(this, 'Remove-Item -Recurse -Force \"$env:APPDATA\\npm\"\nRemove-Item -Recurse -Force \"$env:APPDATA\\npm-cache\"')">Copy</button>
</div>
<div class="code-body">
<span class="comment"># Delete npm folder</span><br>
<span class="func">Remove-Item</span> -Recurse -Force <span class="str">"$env:APPDATA\npm"</span><br><br>
<span class="comment"># Delete npm cache</span><br>
<span class="func">Remove-Item</span> -Recurse -Force <span class="str">"$env:APPDATA\npm-cache"</span>
</div>
</div>
<div class="info warn">
<span class="info-icon">โ ๏ธ</span>
<div>
<strong>Manual Cleanup:</strong>
<p>Also delete these folders manually if they exist:<br>
โข <code>C:\Program Files\nodejs</code><br>
โข <code>C:\Users\[YourName]\AppData\Roaming\npm</code></p>
</div>
</div>
</div>
<!-- macOS Instructions -->
<div class="os-content" id="mac">
<h4 style="color: var(--cyan); margin: 20px 0 15px; font-size: 1.2rem;">๐ macOS Uninstall</h4>
<div class="steps">
<div class="step" onclick="showToast('Step 1: Open Terminal')">
<div class="step-num">1</div>
<div class="step-content">
<h4>Open Terminal</h4>
<p>Press <kbd style="background: var(--card); padding: 2px 8px; border-radius: 4px;">Cmd + Space</kbd>, type "Terminal", press Enter</p>
</div>
</div>
<div class="step" onclick="showToast('Step 2: Run uninstall commands')">
<div class="step-num">2</div>
<div class="step-content">
<h4>Run Uninstall Commands</h4>
<p>Execute the commands below to remove Node.js</p>
</div>
</div>
<div class="step" onclick="showToast('Step 3: Clean up files')">
<div class="step-num">3</div>
<div class="step-content">
<h4>Remove Remaining Files</h4>
<p>Delete leftover configuration files</p>
</div>
</div>
</div>
<div class="code-block">
<div class="code-header">
<div class="code-dots">
<div class="dot r"></div>
<div class="dot y"></div>
<div class="dot g"></div>
</div>
<span class="code-lang">Terminal Commands</span>
<button class="code-copy" onclick="copyCode(this, 'sudo rm -rf /usr/local/lib/node_modules\nsudo rm -rf /usr/local/include/node\nsudo rm -rf /usr/local/bin/node\nsudo rm -rf /usr/local/bin/npm\nsudo rm -rf /usr/local/share/man/man1/node.1\nsudo rm -rf /usr/local/lib/dtrace/node.d\nsudo rm -rf ~/.npm\nsudo rm -rf ~/.node-gyp')">Copy</button>
</div>
<div class="code-body">
<span class="comment"># Remove Node.js files</span><br>
<span class="kw">sudo</span> <span class="func">rm</span> -rf /usr/local/lib/node_modules<br>
<span class="kw">sudo</span> <span class="func">rm</span> -rf /usr/local/include/node<br>
<span class="kw">sudo</span> <span class="func">rm</span> -rf /usr/local/bin/node<br>
<span class="kw">sudo</span> <span class="func">rm</span> -rf /usr/local/bin/npm<br><br>
<span class="comment"># Remove npm cache and config</span><br>
<span class="kw">sudo</span> <span class="func">rm</span> -rf ~/.npm<br>
<span class="kw">sudo</span> <span class="func">rm</span> -rf ~/.node-gyp
</div>
</div>
<div class="info tip">
<span class="info-icon">๐ก</span>
<div>
<strong>Homebrew Users:</strong>
<p>If you installed Node.js via Homebrew, use: <code>brew uninstall node</code></p>
</div>
</div>
</div>
<!-- Linux Instructions -->
<div class="os-content" id="linux">
<h4 style="color: var(--cyan); margin: 20px 0 15px; font-size: 1.2rem;">๐ง Linux Uninstall</h4>
<div class="info cool">
<span class="info-icon">โน๏ธ</span>
<div>
<strong>Multiple Methods:</strong>
<p>The uninstall method depends on how you installed Node.js</p>
</div>
</div>
<h4 style="color: var(--yellow); margin: 20px 0 10px;">๐ฆ apt (Ubuntu/Debian)</h4>
<div class="code-block">
<div class="code-header">
<div class="code-dots">
<div class="dot r"></div>
<div class="dot y"></div>
<div class="dot g"></div>
</div>
<span class="code-lang">Terminal</span>
<button class="code-copy" onclick="copyCode(this, 'sudo apt remove nodejs\nsudo apt purge nodejs\nsudo apt autoremove')">Copy</button>
</div>
<div class="code-body">
<span class="kw">sudo</span> <span class="func">apt</span> remove nodejs<br>
<span class="kw">sudo</span> <span class="func">apt</span> purge nodejs<br>
<span class="kw">sudo</span> <span class="func">apt</span> autoremove
</div>
</div>
<h4 style="color: var(--yellow); margin: 20px 0 10px;">๐ฆ yum (CentOS/RHEL)</h4>
<div class="code-block">
<div class="code-header">
<div class="code-dots">
<div class="dot r"></div>
<div class="dot y"></div>
<div class="dot g"></div>
</div>
<span class="code-lang">Terminal</span>
<button class="code-copy" onclick="copyCode(this, 'sudo yum remove nodejs npm')">Copy</button>
</div>
<div class="code-body">
<span class="kw">sudo</span> <span class="func">yum</span> remove nodejs npm
</div>
</div>
<h4 style="color: var(--yellow); margin: 20px 0 10px;">๐งน Clean Up</h4>
<div class="code-block">
<div class="code-header">
<div class="code-dots">
<div class="dot r"></div>
<div class="dot y"></div>
<div class="dot g"></div>
</div>
<span class="code-lang">Terminal</span>
<button class="code-copy" onclick="copyCode(this, 'sudo rm -rf /usr/local/bin/npm\nsudo rm -rf /usr/local/share/man/man1/node*\nsudo rm -rf /usr/local/lib/dtrace/node.d\nsudo rm -rf ~/.npm\nsudo rm -rf ~/.node-gyp')">Copy</button>
</div>
<div class="code-body">
<span class="kw">sudo</span> <span class="func">rm</span> -rf /usr/local/bin/npm<br>
<span class="kw">sudo</span> <span class="func">rm</span> -rf ~/.npm<br>
<span class="kw">sudo</span> <span class="func">rm</span> -rf ~/.node-gyp
</div>
</div>
</div>
</div>
</section>
<!-- Verification -->
<section class="section" id="verify">
<div class="sec-title">
<div class="sec-icon" style="background: linear-gradient(135deg, var(--green), var(--cyan));">โ
</div>
<span>Verify Uninstallation</span>
</div>
<div class="card">
<h3>๐ Check if Node.js is Removed</h3>
<p>Run these commands to verify Node.js is completely uninstalled:</p>
<div class="code-block">
<div class="code-header">
<div class="code-dots">
<div class="dot r"></div>
<div class="dot y"></div>
<div class="dot g"></div>
</div>
<span class="code-lang">Verification Commands</span>
<button class="code-copy" onclick="copyCode(this, 'node --version\nnpm --version')">Copy</button>
</div>
<div class="code-body">
<span class="func">node</span> --version<br>
<span class="comment"># Should show: command not found</span><br><br>
<span class="func">npm</span> --version<br>
<span class="comment"># Should show: command not found</span>
</div>
</div>
<div class="info cool">
<span class="info-icon">โ
</span>
<div>
<strong>Success!</strong>
<p>If both commands return "command not found" or similar errors, Node.js is successfully uninstalled!</p>
</div>
</div>
</div>
</section>
<!-- Interactive Simulator -->
<section class="section" id="simulator">
<div class="sec-title">
<div class="sec-icon" style="background: linear-gradient(135deg, var(--purple), var(--pink));">๐ฎ</div>
<span>Interactive Uninstall Simulator</span>
</div>
<div class="simulator">
<div class="simulator-title">๐ฏ Try the Uninstall Process!</div>
<p style="text-align: center; color: #94a3b8; margin-bottom: 20px;">Simulate the uninstall process safely</p>
<div class="terminal">
<div class="term-header">
<div class="dot r"></div>
<div class="dot y"></div>
<div class="dot g"></div>
<span class="term-title">Terminal Simulator</span>
</div>
<div class="term-body" id="simOutput">
<div class="term-line">
<span style="color: #64748b;">Click a button below to simulate uninstall steps</span>
</div>
<div class="term-line"><span class="prompt">$</span> _</div>
</div>
</div>
<div class="btn-group">
<button class="btn" onclick="simulate('check')">
๐ Check Version
</button>
<button class="btn danger" onclick="simulate('uninstall')">
๐๏ธ Uninstall
</button>
<button class="btn" onclick="simulate('verify')">
โ
Verify
</button>
<button class="btn secondary" onclick="clearSim()">
๐ Reset
</button>
</div>
</div>
</section>
<!-- Troubleshooting -->
<section class="section" id="troubleshoot">
<div class="sec-title">
<div class="sec-icon" style="background: linear-gradient(135deg, var(--yellow), var(--orange));">๐ง</div>
<span>Troubleshooting</span>
</div>
<div class="card">
<h3>โ Common Issues</h3>
<div class="info warn">
<span class="info-icon">โ ๏ธ</span>
<div>
<strong>Permission Denied:</strong>
<p>Use <code>sudo</code> on macOS/Linux or run Command Prompt as Administrator on Windows</p>
</div>
</div>
<div class="info warn">
<span class="info-icon">โ ๏ธ</span>
<div>
<strong>Files Still Exist:</strong>
<p>Manually delete remaining folders from the locations mentioned above</p>
</div>
</div>
<div class="info warn">
<span class="info-icon">โ ๏ธ</span>
<div>
<strong>Command Still Works:</strong>
<p>Restart your terminal/command prompt or restart your computer</p>
</div>
</div>
</div>
</section>
<!-- Quiz -->
<section class="section" id="quiz">
<div class="sec-title">
<div class="sec-icon" style="background: linear-gradient(135deg, var(--purple), var(--pink));">๐ง </div>
<span>Test Your Knowledge!</span>
</div>
<div class="quiz">
<div class="quiz-q">What should you do BEFORE uninstalling Node.js?</div>
<div class="quiz-opts">
<div class="quiz-opt" onclick="checkQuiz(this, false)">
<span class="opt-letter">A</span>
<span>Delete all your projects</span>
</div>
<div class="quiz-opt" onclick="checkQuiz(this, true)">
<span class="opt-letter">B</span>
<span>Backup projects and note global packages</span>
</div>
<div class="quiz-opt" onclick="checkQuiz(this, false)">
<span class="opt-letter">C</span>
<span>Install a new version first</span>
</div>
<div class="quiz-opt" onclick="checkQuiz(this, false)">
<span class="opt-letter">D</span>
<span>Nothing, just uninstall</span>
</div>
</div>
<div class="quiz-result" id="quizResult"></div>
</div>
</section>
</main>
<button class="fab" id="fab" onclick="scrollTop()">โฌ๏ธ</button>
<div class="toast" id="toast"></div>
<footer>
<div class="footer-icons">
<div class="footer-icon">๐๏ธ</div>
<div class="footer-icon">โฌข</div>
<div class="footer-icon">๐ป</div>
<div class="footer-icon">โจ</div>
</div>
<p style="color: #64748b;">Safe Node.js Uninstallation! ๐</p>
<p style="color: #475569; font-size: 0.85rem; margin-top: 8px;">Remember to backup before uninstalling!</p>
</footer>
<script>
// Background animation
const bgAnim = document.getElementById('bgAnim');
// Create floating icons
const icons = ['๐๏ธ', 'โฌข', '๐ป', '๐งน', 'โ ๏ธ', 'โ
'];
for (let i = 0; i < 8; i++) {
const icon = document.createElement('div');
icon.className = 'float-icon';
icon.textContent = icons[Math.floor(Math.random() * icons.length)];
icon.style.left = Math.random() * 100 + '%';
icon.style.top = Math.random() * 100 + '%';
icon.style.animationDelay = Math.random() * 5 + 's';
icon.style.animationDuration = (Math.random() * 20 + 20) + 's';
bgAnim.appendChild(icon);
}
// Create orbs
const colors = ['var(--red)', 'var(--orange)', 'var(--yellow)'];
for (let i = 0; i < 3; i++) {
const orb = document.createElement('div');
orb.className = 'orb';
orb.style.width = (Math.random() * 400 + 250) + 'px';
orb.style.height = orb.style.width;
orb.style.left = Math.random() * 100 + '%';
orb.style.top = Math.random() * 100 + '%';
orb.style.background = colors[i];
orb.style.animationDelay = i * 5 + 's';
bgAnim.appendChild(orb);
}
// Scroll animations
const sections = document.querySelectorAll('.section');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('vis');
});
}, { threshold: 0.1 });
sections.forEach(s => obs.observe(s));
// Progress bar
window.addEventListener('scroll', () => {
const scrolled = (window.scrollY / (document.body.scrollHeight - window.innerHeight)) * 100;
document.getElementById('progress').style.width = scrolled + '%';
document.getElementById('fab').classList.toggle('show', window.scrollY > 300);
});
// Toast
function showToast(msg) {
const toast = document.getElementById('toast');
toast.textContent = 'โจ ' + msg;
toast.classList.add('show');
setTimeout(() => toast.classList.remove('show'), 2500);
}
// Copy code
function copyCode(btn, code) {
navigator.clipboard.writeText(code);
btn.textContent = 'Copied!';
btn.classList.add('copied');
showToast('Code copied to clipboard!');
setTimeout(() => {
btn.textContent = 'Copy';
btn.classList.remove('copied');
}, 2000);
}
// OS Switcher
function switchOS(os) {
document.querySelectorAll('.os-tab').forEach(t => t.classList.remove('active'));
document.querySelectorAll('.os-content').forEach(c => c.classList.remove('active'));
event.target.closest('.os-tab').classList.add('active');
document.getElementById(os).classList.add('active');
showToast(`Switched to ${os} instructions!`);
}
// Checklist
function toggleCheck(item) {
item.classList.toggle('checked');
const checked = document.querySelectorAll('.checklist-item.checked').length;
const total = document.querySelectorAll('.checklist-item').length;
if (checked === total) {
showToast('All checklist items completed! ๐');
celebrate();
}
}
// Simulator
const simScenarios = {
check: [
{ text: '$ node --version', delay: 300 },
{ text: 'v20.10.0', color: 'var(--green)', delay: 500 },
{ text: '$ npm --version', delay: 700 },
{ text: '10.2.3', color: 'var(--green)', delay: 900 }
],
uninstall: [
{ text: '$ sudo apt remove nodejs', delay: 300 },
{ text: 'Reading package lists... Done', color: 'var(--cyan)', delay: 600 },
{ text: 'Building dependency tree... Done', color: 'var(--cyan)', delay: 900 },
{ text: 'The following packages will be REMOVED:', color: 'var(--yellow)', delay: 1200 },
{ text: ' nodejs', color: 'var(--yellow)', delay: 1400 },
{ text: 'Removing nodejs...', color: 'var(--orange)', delay: 1800 },
{ text: 'Processing triggers...', color: 'var(--cyan)', delay: 2200 },
{ text: 'โ
Node.js successfully removed!', color: 'var(--green)', delay: 2600 }
],
verify: [
{ text: '$ node --version', delay: 300 },
{ text: 'bash: node: command not found', color: 'var(--red)', delay: 600 },
{ text: '$ npm --version', delay: 1000 },
{ text: 'bash: npm: command not found', color: 'var(--red)', delay: 1300 },
{ text: 'โ
Verification complete! Node.js is uninstalled.', color: 'var(--green)', delay: 1700 }
]
};
function simulate(type) {
const output = document.getElementById('simOutput');
output.innerHTML = '';
const scenario = simScenarios[type];
let totalDelay = 0;
scenario.forEach((line, i) => {
totalDelay += line.delay;
setTimeout(() => {
const div = document.createElement('div');
div.className = 'term-line';
div.innerHTML = `<span style="color: ${line.color || '#94a3b8'}">${line.text}</span>`;
output.appendChild(div);
output.scrollTop = output.scrollHeight;
if (i === scenario.length - 1) {
const cursor = document.createElement('div');
cursor.className = 'term-line';
cursor.innerHTML = '<span class="prompt">$</span> _';
output.appendChild(cursor);
showToast('Simulation complete!');
}
}, totalDelay);
});
}
function clearSim() {
document.getElementById('simOutput').innerHTML = '<div class="term-line"><span style="color: #64748b;">Click a button to simulate uninstall steps</span></div><div class="term-line"><span class="prompt">$</span> _</div>';
showToast('Simulator reset!');
}
// Quiz
function checkQuiz(el, correct) {
const opts = document.querySelectorAll('.quiz-opt');
opts.forEach(o => {
o.style.pointerEvents = 'none';
o.classList.remove('correct', 'wrong');
});
el.classList.add(correct ? 'correct' : 'wrong');
if (!correct) opts[1].classList.add('correct');
const result = document.getElementById('quizResult');
result.className = 'quiz-result show';
result.style.background = correct ? 'rgba(16,185,129,0.2)' : 'rgba(239,68,68,0.2)';
result.innerHTML = correct
? '๐ Correct! Always backup your projects and note global packages before uninstalling!'
: 'โ Not quite! You should backup projects and note global packages before uninstalling.';
if (correct) celebrate();
}
// Celebrate
function celebrate() {
const colors = ['var(--red)', 'var(--orange)', 'var(--yellow)', 'var(--purple)', 'var(--pink)'];
for (let i = 0; i < 40; i++) {
const confetti = document.createElement('div');
confetti.style.position = 'fixed';
confetti.style.width = '12px';
confetti.style.height = '12px';
confetti.style.background = colors[Math.floor(Math.random() * colors.length)];
confetti.style.left = Math.random() * 100 + '%';
confetti.style.top = '-30px';
confetti.style.borderRadius = Math.random() > 0.5 ? '50%' : '0';
confetti.style.zIndex = '9999';
confetti.style.pointerEvents = 'none';
document.body.appendChild(confetti);
const fall = confetti.animate([
{ transform: 'translateY(0) rotate(0deg)', opacity: 1 },
{ transform: `translateY(100vh) rotate(${Math.random() * 720}deg)`, opacity: 0 }
], {
duration: Math.random() * 2500 + 2000,
easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)'
});
fall.onfinish = () => confetti.remove();
}
}
// Scroll to top
function scrollTop() {
window.scrollTo({ top: 0, behavior: 'smooth' });
}
// Initial visibility
setTimeout(() => sections[0].classList.add('vis'), 300);
</script>
</body>
</html>
Live Preview