{"id":93930,"date":"2025-12-30T15:46:12","date_gmt":"2025-12-30T08:46:12","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=93930"},"modified":"2025-12-30T15:46:14","modified_gmt":"2025-12-30T08:46:14","slug":"huong-dan-npm-remove-package","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/","title":{"rendered":"NPM remove package: C\u00e1ch xo\u00e1 package kh\u1ecfi d\u1ef1 \u00e1n NodeJS"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#npm_remove_package_la_gi\" >npm remove package l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#Nhung_cach_remove_package_pho_bien_trong_npm\" >Nh\u1eefng c\u00e1ch remove package ph\u1ed5 bi\u1ebfn trong npm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#Cac_luu_y_de_remove_package_trong_NPM_hieu_qua\" >C\u00e1c l\u01b0u \u00fd \u0111\u1ec3 remove package trong NPM hi\u1ec7u qu\u1ea3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#Cac_cau_hoi_thuong_gap_ve_npm_remove_package\" >C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 npm remove package<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#Tong_ket\" >T\u1ed5ng k\u1ebft<\/a><\/li><\/ul><\/nav><\/div>\n\n<p><strong><em>NPM remove package l\u00e0 thao t\u00e1c c\u01a1 b\u1ea3n nh\u01b0ng quan tr\u1ecdng gi\u00fap l\u1eadp tr\u00ecnh vi\u00ean lo\u1ea1i b\u1ecf nh\u1eefng g\u00f3i th\u01b0 vi\u1ec7n kh\u00f4ng c\u00f2n s\u1eed d\u1ee5ng trong d\u1ef1 \u00e1n Node.js, d\u00f9 b\u1ea1n \u0111ang d\u1ecdn d\u1eb9p c\u00e1c dependency, x\u1eed l\u00fd s\u1ef1 c\u1ed1, hay t\u1ed1i \u01b0u k\u00edch th\u01b0\u1edbc d\u1ef1 \u00e1n, vi\u1ec7c g\u1ee1 package \u0111\u00fang c\u00e1ch s\u1ebd gi\u00fap d\u1ef1 \u00e1n \u1ed5n \u0111\u1ecbnh v\u00e0 s\u1ea1ch s\u1ebd h\u01a1n.<\/em><\/strong><\/p>\n\n\n\n<p>\u0110\u1ecdc b\u00e0i vi\u1ebft sau \u0111\u1ec3 \u0111\u01b0\u1ee3c gi\u1ea3i \u0111\u00e1p chi ti\u1ebft h\u01a1n v\u1ec1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>T\u1ed5ng quan v\u1ec1 npm remove package v\u00e0 c\u00e1ch s\u1eed d\u1ee5ng c\u00e2u l\u1ec7nh uninstall \u0111\u1ec3 g\u1ee1 b\u1ecf m\u1ed9t package.\u00a0<\/li>\n\n\n\n<li>Nh\u1eefng c\u00e1ch g\u1ee1 b\u1ecf package th\u01b0\u1eddng g\u1eb7p trong npm.\u00a0<\/li>\n\n\n\n<li>\u1ee8ng d\u1ee5ng c\u1ee7a npm remove package.<\/li>\n\n\n\n<li>M\u1ed9t s\u1ed1 c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 c\u00e1ch g\u1ee1 b\u1ecf package trong npm.\u00a0<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc chi ti\u1ebft: <strong><a href=\"https:\/\/itviec.com\/blog\/npm-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">NPM l\u00e0 g\u00ec: Kh\u00e1i ni\u1ec7m, l\u1ec7nh v\u00e0 thao t\u00e1c c\u01a1 b\u1ea3n v\u1edbi NPM<\/a><\/strong><\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-npm-remove-package-la-gi\"><span class=\"ez-toc-section\" id=\"npm_remove_package_la_gi\"><\/span><strong>npm remove package l\u00e0 g\u00ec?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>NPM, vi\u1ebft t\u1eaft c\u1ee7a Node Package Manager, l\u00e0 tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i (package) m\u1eb7c \u0111\u1ecbnh c\u1ee7a Node.js. C\u00f4ng c\u1ee5 n\u00e0y \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi Isaac Z. Schlueter, vi\u1ebft ho\u00e0n to\u00e0n b\u1eb1ng ng\u00f4n ng\u1eef JavaScript, v\u00e0 ra m\u1eaft l\u1ea7n \u0111\u1ea7u ti\u00ean v\u00e0o ng\u00e0y 12 th\u00e1ng 1 n\u0103m 2010.&nbsp;<\/p>\n\n\n\n<p>Trong NPM, remove package ngh\u0129a l\u00e0 g\u1ee1 b\u1ecf m\u1ed9t package b\u1eb1ng c\u00e1ch d\u00f9ng l\u1ec7nh:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm uninstall<\/code><\/pre>\n\n\n\n<p>L\u1ec7nh n\u00e0y s\u1ebd g\u1ee1 c\u00e0i \u0111\u1eb7t m\u1ed9t package, lo\u1ea1i b\u1ecf ho\u00e0n to\u00e0n m\u1ecdi th\u00e0nh ph\u1ea7n m\u00e0 npm \u0111\u00e3 c\u00e0i \u0111\u1eb7t li\u00ean quan \u0111\u1ebfn package \u0111\u00f3. Ngo\u00e0i ra, l\u1ec7nh c\u00f2n x\u00f3a package kh\u1ecfi c\u00e1c danh m\u1ee5c trong file package.json, bao g\u1ed3m dependencies, devDependencies, optionalDependencies, peerDependencies.<\/p>\n\n\n\n<p>N\u1ebfu d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n c\u00f3 file npm-shrinkwrap.json ho\u1eb7c package-lock.json, npm c\u0169ng s\u1ebd t\u1ef1 \u0111\u1ed9ng c\u1eadp nh\u1eadt c\u00e1c file n\u00e0y \u0111\u1ec3 ph\u1ea3n \u00e1nh thay \u0111\u1ed5i.\u00a0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-npm-uninstall-va-npm-remove\"><strong>npm uninstall v\u00e0 npm remove<\/strong><\/h3>\n\n\n\n<p><code>npm remove<\/code> v\u00e0 <code>npm uninstall<\/code> th\u1ef1c ch\u1ea5t l\u00e0 hai l\u1ec7nh t\u01b0\u01a1ng \u0111\u01b0\u01a1ng nhau. C\u1ea3 hai \u0111\u1ec1u d\u00f9ng \u0111\u1ec3 x\u00f3a package kh\u1ecfi d\u1ef1 \u00e1n v\u00e0 c\u1eadp nh\u1eadt l\u1ea1i package.json. Trong \u0111\u00f3:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>npm uninstall<\/code> l\u00e0 c\u00fa ph\u00e1p g\u1ed1c<\/li>\n\n\n\n<li><code>npm remove<\/code> l\u00e0 m\u1ed9t alias (t\u00ean vi\u1ebft t\u1eaft) \u0111\u01b0\u1ee3c npm h\u1ed7 tr\u1ee3 \u0111\u1ec3 gi\u00fap ng\u01b0\u1eddi d\u00f9ng thao t\u00e1c nhanh h\u01a1n.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-c\u1ea5u-truc-l\u1ec7nh-npm-uninstall\"><strong>C\u1ea5u tr\u00fac l\u1ec7nh npm uninstall<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C\u00fa ph\u00e1p: <code>npm uninstall [&lt;@scope>\/]&lt;pkg>...<\/code><\/li>\n\n\n\n<li>C\u00e1c aliases: unlink, remove, rm, r, un<\/li>\n\n\n\n<li>C\u00e1c flag ph\u1ed5 bi\u1ebfn:<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Flag<\/td><td>Ch\u1ee9c n\u0103ng<\/td><\/tr><tr><td><code>--save<\/code> \/ <code>-S<\/code><\/td><td>Y\u00eau c\u1ea7u npm x\u00f3a package kh\u1ecfi c\u00e1c file tr\u00ean. \u0110\u00e2y l\u00e0 h\u00e0nh vi m\u1eb7c \u0111\u1ecbnh, tuy nhi\u00ean b\u1ea1n c\u00f3 th\u1ec3 c\u1ea7n d\u00f9ng c\u1edd n\u00e0y n\u1ebfu trong file npmrc c\u00f3 thi\u1ebft l\u1eadp save=false.<\/td><\/tr><tr><td><code>--no-save<\/code><\/td><td>Y\u00eau c\u1ea7u npm kh\u00f4ng x\u00f3a package kh\u1ecfi c\u00e1c file package.json, npm-shrinkwrap.json ho\u1eb7c package-lock.json.<\/td><\/tr><tr><td><code>-D<\/code> \/ <code>--save-dev<\/code><\/td><td>G\u1ee1 package trong devDependencies<\/td><\/tr><tr><td><code>-g<\/code> \/ <code>--global<\/code><\/td><td>Ch\u1ebf \u0111\u1ed9 global =&gt; npm s\u1ebd g\u1ee1 c\u00e0i \u0111\u1eb7t package kh\u1ecfi ph\u1ea1m vi to\u00e0n h\u1ec7 th\u1ed1ng (global).<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc chi ti\u1ebft: <strong><a href=\"https:\/\/itviec.com\/blog\/huong-dan-npm-install\/\" target=\"_blank\" rel=\"noreferrer noopener\">NPM install: H\u01b0\u1edbng d\u1eabn c\u00e1ch c\u00e0i \u0111\u1eb7t v\u00e0 qu\u1ea3n l\u00fd c\u00e1c g\u00f3i package<\/a><\/strong><\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-nh\u1eefng-cach-remove-package-ph\u1ed5-bi\u1ebfn-trong-npm\"><span class=\"ez-toc-section\" id=\"Nhung_cach_remove_package_pho_bien_trong_npm\"><\/span><strong>Nh\u1eefng c\u00e1ch remove package ph\u1ed5 bi\u1ebfn trong npm<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>NPM cung c\u1ea5p nhi\u1ec1u c\u00e1ch kh\u00e1c nhau \u0111\u1ec3 remove package, t\u00f9y v\u00e0o m\u1ee5c \u0111\u00edch v\u00e0 ph\u1ea1m vi m\u00e0 b\u1ea1n mu\u1ed1n th\u1ef1c hi\u1ec7n. T\u1eeb vi\u1ec7c g\u1ee1 c\u00e0i \u0111\u1eb7t trong d\u1ef1 \u00e1n c\u1ee5c b\u1ed9, lo\u1ea1i b\u1ecf package to\u00e0n c\u1ee5c, cho \u0111\u1ebfn d\u1ecdn d\u1eb9p c\u00e1c dependency kh\u00f4ng c\u00f2n s\u1eed d\u1ee5ng.<\/p>\n\n\n\n<p>D\u01b0\u1edbi \u0111\u00e2y, ITviec s\u1ebd gi\u1edbi thi\u1ec7u nh\u1eefng ph\u01b0\u01a1ng ph\u00e1p ph\u1ed5 bi\u1ebfn v\u00e0 hi\u1ec7u qu\u1ea3 nh\u1ea5t gi\u00fap b\u1ea1n g\u1ee1 package trong npm m\u1ed9t c\u00e1ch an to\u00e0n, nhanh ch\u00f3ng v\u00e0 \u0111\u00fang chu\u1ea9n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-g\u1ee1-b\u1ecf-package-v\u1edbi-npm-uninstall\"><strong>G\u1ee1 b\u1ecf package v\u1edbi npm uninstall<\/strong><\/h3>\n\n\n\n<p>\u0110\u1ec3 g\u1ee1 m\u1ed9t package b\u1eb1ng l\u1ec7nh <code>npm uninstall<\/code>, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00fa ph\u00e1p v\u00e0 ch\u1ea1y l\u1ec7nh n\u00e0y trong th\u01b0 m\u1ee5c ch\u1ee9a package \u0111\u00f3.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm uninstall &lt;t\u00ean_package&gt;<\/code><\/pre>\n\n\n\n<p>V\u00ed d\u1ee5, s\u1eed d\u1ee5ng Express, m\u1ed9t framework ph\u1ed5 bi\u1ebfn c\u1ee7a Node.js. Express s\u1ebd \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea trong ph\u1ea7n dependencies c\u1ee7a file package.json. Tuy nhi\u00ean, sau khi ch\u1ea1y l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm uninstall express<\/code><\/pre>\n\n\n\n<p>Express s\u1ebd kh\u00f4ng c\u00f2n xu\u1ea5t hi\u1ec7n trong danh s\u00e1ch dependency n\u1eefa. Th\u1eadm ch\u00ed, n\u1ebfu d\u1ef1 \u00e1n kh\u00f4ng c\u00f2n g\u00f3i ph\u1ee5 thu\u1ed9c n\u00e0o kh\u00e1c, kh\u00f3a dependencies c\u0169ng s\u1ebd bi\u1ebfn m\u1ea5t ho\u00e0n to\u00e0n kh\u1ecfi file package.json.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-g\u1ee1-b\u1ecf-devdependency-b\u1eb1ng-npm-uninstall\"><strong>G\u1ee1 b\u1ecf DevDependency b\u1eb1ng npm uninstall<\/strong><\/h3>\n\n\n\n<p>Dev dependency l\u00e0 nh\u1eefng package ch\u1ec9 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n, ch\u1ee9 kh\u00f4ng c\u1ea7n thi\u1ebft khi ch\u1ea1y \u1ee9ng d\u1ee5ng trong m\u00f4i tr\u01b0\u1eddng s\u1ea3n xu\u1ea5t. \u0110\u1ec3 g\u1ee1 m\u1ed9t dev dependency, b\u1ea1n c\u1ea7n th\u00eam flag <code>-D<\/code> ho\u1eb7c <code>--save-dev<\/code> v\u00e0o sau l\u1ec7nh <code>npm uninstall<\/code>, r\u1ed3i ch\u1ec9 \u0111\u1ecbnh t\u00ean c\u1ee7a package c\u1ea7n g\u1ee1.<\/p>\n\n\n\n<p>B\u1ea1n s\u1ebd c\u1ea7n ch\u1ea1y l\u1ec7nh d\u01b0\u1edbi \u0111\u00e2y trong th\u01b0 m\u1ee5c d\u1ef1 \u00e1n, n\u01a1i ch\u1ee9a dependency \u0111\u00f3:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm uninstall -D &lt;t\u00ean_package&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>npm uninstall --save-dev &lt;t\u00ean_package&gt;<\/code><\/pre>\n\n\n\n<p>V\u00ed d\u1ee5, s\u1eed d\u1ee5ng Nodemon, c\u00f4ng c\u1ee5 cho ph\u00e9p \u1ee9ng d\u1ee5ng Node.js t\u1ef1 \u0111\u1ed9ng t\u1ea3i l\u1ea1i (reload) b\u1ea5t c\u1ee9 khi n\u00e0o c\u00f3 thay \u0111\u1ed5i trong file ho\u1eb7c th\u01b0 m\u1ee5c trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n. Nodemon \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea trong ph\u1ea7n devDependencies c\u1ee7a file package.json. Khi ch\u1ea1y l\u1ec7nh sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm uninstall -D nodemon<\/code><\/pre>\n\n\n\n<p>Nodemon s\u1ebd b\u1ecb x\u00f3a ho\u00e0n to\u00e0n kh\u1ecfi package.json. K\u1ebft qu\u1ea3 l\u00e0 kh\u00f4ng c\u00f2n d\u00f2ng khai b\u00e1o Nodemon trong danh s\u00e1ch devDependencies n\u1eefa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-g\u1ee1-b\u1ecf-global-package-b\u1eb1ng-cach-s\u1eed-d\u1ee5ng-npm-uninstall\"><strong>G\u1ee1 b\u1ecf Global Package b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng npm uninstall<\/strong><\/h3>\n\n\n\n<p>Global package l\u00e0 nh\u1eefng package \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t to\u00e0n c\u1ee5c tr\u00ean m\u00e1y t\u00ednh, cho ph\u00e9p b\u1ea1n s\u1eed d\u1ee5ng ch\u00fang \u1edf b\u1ea5t k\u1ef3 d\u1ef1 \u00e1n n\u00e0o m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i c\u00e0i \u0111\u1eb7t l\u1ea1i m\u1ed7i l\u1ea7n s\u1eed d\u1ee5ng. \u0110\u1ec3 g\u1ee1 m\u1ed9t global package, b\u1ea1n c\u1ea7n th\u00eam flag <code>-g<\/code> v\u00e0o l\u1ec7nh npm uninstall, sau \u0111\u00f3 ch\u1ec9 \u0111\u1ecbnh t\u00ean c\u1ee7a package mu\u1ed1n x\u00f3a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm uninstall -g &lt;t\u00ean_package&gt;<\/code><\/pre>\n\n\n\n<p>V\u00ed d\u1ee5, s\u1eed d\u1ee5ng package CORS (Cross-Origin Resource Sharing). CORS l\u00e0 c\u01a1 ch\u1ebf gi\u00fap tr\u00ecnh duy\u1ec7t cho ph\u00e9p g\u1eedi y\u00eau c\u1ea7u (request) gi\u1eefa c\u00e1c ngu\u1ed3n kh\u00e1c nhau, v\u01b0\u1ee3t qua gi\u1edbi h\u1ea1n Same Origin Policy (SOP) m\u1eb7c \u0111\u1ecbnh. Package CORS trong npm gi\u00fap b\u1ea1n c\u1ea5u h\u00ecnh c\u01a1 ch\u1ebf n\u00e0y d\u1ec5 d\u00e0ng khi d\u00f9ng Express.<\/p>\n\n\n\n<p>CORS kh\u00f4ng \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea trong file package.json, v\u00ec \u0111\u00e2y l\u00e0 package \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t to\u00e0n c\u1ee5c (global) ch\u1ee9 kh\u00f4ng thu\u1ed9c ph\u1ea1m vi c\u1ee7a d\u1ef1 \u00e1n hi\u1ec7n t\u1ea1i, ch\u1ee9 kh\u00f4ng ph\u1ea3i trong th\u01b0 m\u1ee5c c\u1ee7a m\u1ed9t d\u1ef1 \u00e1n c\u1ee5 th\u1ec3.<\/p>\n\n\n\n<p>N\u1ebfu b\u1ea1n c\u00e0i \u0111\u1eb7t m\u1ed9t g\u00f3i to\u00e0n c\u1ee5c v\u00e0 mu\u1ed1n xem danh s\u00e1ch c\u00e1c g\u00f3i \u0111\u00f3, h\u00e3y ch\u1ea1y l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm list -g<\/code><\/pre>\n\n\n\n<p>Khi \u0111\u00f3, b\u1ea1n s\u1ebd th\u1ea5y CORS xu\u1ea5t hi\u1ec7n trong danh s\u00e1ch c\u00e1c g\u00f3i \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t to\u00e0n c\u1ee5c. \u0110\u1ec3 g\u1ee1 c\u00e0i \u0111\u1eb7t CORS to\u00e0n c\u1ee5c s\u1ebd ch\u1ea1y l\u1ec7nh<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm uninstall -g cors<\/code><\/pre>\n\n\n\n<p>Sau khi ch\u1ea1y l\u1ec7nh n\u00e0y, b\u1ea1n c\u00f3 th\u1ec3 ki\u1ec3m tra l\u1ea1i b\u1eb1ng l\u1ec7nh v\u00e0 s\u1ebd th\u1ea5y r\u1eb1ng CORS \u0111\u00e3 kh\u00f4ng c\u00f2n trong danh s\u00e1ch n\u1eefa.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm list -g<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-g\u1ee1-b\u1ecf-t\u1ea5t-c\u1ea3-cac-package-khong-s\u1eed-d\u1ee5ng-n\u1eefa-v\u1edbi-npm-uninstall\"><strong>G\u1ee1 b\u1ecf t\u1ea5t c\u1ea3 c\u00e1c package kh\u00f4ng s\u1eed d\u1ee5ng n\u1eefa v\u1edbi npm uninstall<\/strong><\/h3>\n\n\n\n<p>Tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i npm cung c\u1ea5p l\u1ec7nh npm prune, cho ph\u00e9p b\u1ea1n x\u00f3a t\u1ea5t c\u1ea3 c\u00e1c package kh\u00f4ng c\u00f2n \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong d\u1ef1 \u00e1n. B\u1ea1n c\u00f3 th\u1ec3 d\u00f9ng l\u1ec7nh n\u00e0y nh\u01b0 sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm prune<\/code><\/pre>\n\n\n\n<p>L\u1ec7nh npm prune gi\u00fap b\u1ea1n d\u1ecdn d\u1eb9p c\u00e1c package d\u01b0 th\u1eeba c\u00f2n s\u00f3t l\u1ea1i trong th\u01b0 m\u1ee5c node_modules. Nh\u1eefng g\u00f3i kh\u00f4ng c\u00f2n \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea trong file package.json. Vi\u1ec7c ch\u1ea1y l\u1ec7nh n\u00e0y th\u01b0\u1eddng xuy\u00ean gi\u00fap gi\u1ea3m dung l\u01b0\u1ee3ng d\u1ef1 \u00e1n, tr\u00e1nh xung \u0111\u1ed9t dependency, v\u00e0 duy tr\u00ec m\u00f4i tr\u01b0\u1eddng l\u00e0m vi\u1ec7c s\u1ea1ch s\u1ebd, \u1ed5n \u0111\u1ecbnh.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cac-l\u01b0u-y-d\u1ec3-remove-package-trong-npm-hi\u1ec7u-qu\u1ea3\"><span class=\"ez-toc-section\" id=\"Cac_luu_y_de_remove_package_trong_NPM_hieu_qua\"><\/span><strong>C\u00e1c l\u01b0u \u00fd \u0111\u1ec3 remove package trong NPM hi\u1ec7u qu\u1ea3<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Khi l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c d\u1ef1 \u00e1n Node.js, vi\u1ec7c g\u1ee1 b\u1ecf package t\u01b0\u1edfng ch\u1eebng \u0111\u01a1n gi\u1ea3n nh\u01b0ng n\u1ebfu thao t\u00e1c kh\u00f4ng \u0111\u00fang c\u00e1ch c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn l\u1ed7i dependency, xung \u0111\u1ed9t phi\u00ean b\u1ea3n ho\u1eb7c t\u1ec7p c\u1ea5u h\u00ecnh b\u1ecb sai l\u1ec7ch. V\u00ec v\u1eady, n\u1eafm r\u00f5 c\u00e1c best practices khi s\u1eed d\u1ee5ng npm remove package s\u1ebd gi\u00fap b\u1ea1n duy tr\u00ec d\u1ef1 \u00e1n g\u1ecdn g\u00e0ng, \u1ed5n \u0111\u1ecbnh v\u00e0 d\u1ec5 b\u1ea3o tr\u00ec h\u01a1n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-d\u1ecdn-d\u1eb9p-cac-dependency-khong-con-s\u1eed-d\u1ee5ng\"><strong>D\u1ecdn d\u1eb9p c\u00e1c dependency kh\u00f4ng c\u00f2n s\u1eed d\u1ee5ng<\/strong><\/h3>\n\n\n\n<p>Sau khi g\u1ee1 b\u1ecf m\u1ed9t s\u1ed1 package, th\u01b0 m\u1ee5c node_modules c\u1ee7a d\u1ef1 \u00e1n c\u00f3 th\u1ec3 v\u1eabn c\u00f2n ch\u1ee9a c\u00e1c dependency d\u01b0 th\u1eeba, nh\u1eefng g\u00f3i t\u1eebng \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t l\u00e0m dependency cho c\u00e1c package tr\u01b0\u1edbc \u0111\u00f3. M\u1eb7c d\u00f9 ch\u00fang kh\u00f4ng c\u00f2n \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea trong file package.json, nh\u01b0ng ch\u00fang th\u01b0\u1eddng v\u1eabn t\u1ed3n t\u1ea1i trong c\u1ea5u tr\u00fac th\u01b0 m\u1ee5c c\u1ee7a d\u1ef1 \u00e1n, chi\u1ebfm dung l\u01b0\u1ee3ng v\u00e0 c\u00f3 th\u1ec3 g\u00e2y r\u1ed1i khi qu\u1ea3n l\u00fd l\u00e2u d\u00e0i.<\/p>\n\n\n\n<p>\u0110\u1ec3 x\u00f3a c\u00e1c package d\u01b0 th\u1eeba v\u00e0 \u0111\u1ea3m b\u1ea3o d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n ch\u1ec9 ch\u1ee9a nh\u1eefng dependency th\u1ef1c s\u1ef1 c\u1ea7n thi\u1ebft, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng l\u1ec7nh sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm prune<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-g\u1ee1-package-ma-khong-c\u1eadp-nh\u1eadt-file-package-json\"><strong>G\u1ee1 package m\u00e0 kh\u00f4ng c\u1eadp nh\u1eadt file package.json<\/strong><\/h3>\n\n\n\n<p>Khi b\u1ea1n g\u1ee1 b\u1ecf m\u1ed9t package, vi\u1ec7c thay \u0111\u1ed5i n\u00e0y th\u00f4ng th\u01b0\u1eddng s\u1ebd \u0111\u01b0\u1ee3c ghi l\u1ea1i trong c\u00e1c file package.json v\u00e0 package-lock.json. Tuy nhi\u00ean, \u0111\u00f4i khi b\u1ea1n c\u00f3 th\u1ec3 mu\u1ed1n g\u1ee1 package m\u00e0 kh\u00f4ng l\u00e0m thay \u0111\u1ed5i c\u00e1c t\u1ec7p c\u1ea5u h\u00ecnh n\u00e0y. V\u00ed d\u1ee5 nh\u01b0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Khi b\u1ea1n \u0111ang debug l\u1ed7i build do m\u1ed9t package c\u1ee5 th\u1ec3 g\u00e2y ra v\u00e0 mu\u1ed1n t\u1ea1m th\u1eddi g\u1ee1 n\u00f3 \u0111\u1ec3 ki\u1ec3m tra.<\/li>\n\n\n\n<li>Ho\u1eb7c khi b\u1ea1n c\u1ed9ng t\u00e1c trong m\u1ed9t d\u1ef1 \u00e1n nh\u00f3m, b\u1ea1n ch\u1ec9 mu\u1ed1n th\u1eed thay \u0111\u1ed5i trong m\u00f4i tr\u01b0\u1eddng c\u1ee7a ri\u00eang m\u00ecnh m\u00e0 kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn c\u1ea5u h\u00ecnh chung c\u1ee7a d\u1ef1 \u00e1n.<\/li>\n<\/ul>\n\n\n\n<p>\u0110\u1ec3 g\u1ee1 m\u1ed9t package m\u00e0 kh\u00f4ng ch\u1ec9nh s\u1eeda package.json v\u00e0 package-lock.json, b\u1ea1n c\u00f3 th\u1ec3 d\u00f9ng flag &#8211;no-save nh\u01b0 sau:<\/p>\n\n\n\n<pre id=\"h-npm-uninstall-no-save-lt-package-name-gt\" class=\"wp-block-code\"><code>npm uninstall --no-save &lt;package_name&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-xac-nh\u1eadn-vi\u1ec7c-g\u1ee1-cai-d\u1eb7t-package\"><strong>X\u00e1c nh\u1eadn vi\u1ec7c g\u1ee1 c\u00e0i \u0111\u1eb7t package<\/strong><\/h3>\n\n\n\n<p>Sau khi ch\u1ea1y l\u1ec7nh npm uninstall, vi\u1ec7c x\u00e1c minh xem package \u0111\u00e3 \u0111\u01b0\u1ee3c g\u1ee1 b\u1ecf th\u00e0nh c\u00f4ng hay ch\u01b0a l\u00e0 r\u1ea5t quan tr\u1ecdng. \u0110i\u1ec1u n\u00e0y gi\u00fap duy tr\u00ec t\u00ednh to\u00e0n v\u1eb9n v\u00e0 \u1ed5n \u0111\u1ecbnh c\u1ee7a d\u1ef1 \u00e1n, \u0111\u1ed3ng th\u1eddi gi\u1ea3m thi\u1ec3u nguy c\u01a1 xung \u0111\u1ed9t gi\u1eefa c\u00e1c package.<\/p>\n\n\n\n<p>\u0110\u1ec3 xem danh s\u00e1ch c\u00e1c package \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t c\u1ee5c b\u1ed9 (local) trong th\u01b0 m\u1ee5c node_modules, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng l\u1ec7nh sau ngay trong th\u01b0 m\u1ee5c d\u1ef1 \u00e1n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm ls<\/code><\/pre>\n\n\n\n<p>Ngo\u00e0i ra, b\u1ea1n c\u0169ng c\u00f3 th\u1ec3 d\u00f9ng l\u1ec7nh npm ls k\u00e8m theo flag <code>-g<\/code> \u0111\u1ec3 xem danh s\u00e1ch c\u00e1c package \u0111\u00e3 c\u00e0i \u0111\u1eb7t to\u00e0n c\u1ee5c (global):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm list -g<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-g\u1ee1-b\u1ecf-package-kh\u1ecfi-registry\"><strong>G\u1ee1 b\u1ecf package kh\u1ecfi registry<\/strong><\/h3>\n\n\n\n<p>Tr\u01b0\u1edbc khi x\u00f3a m\u1ed9t package kh\u1ecfi npm registry, b\u1ea1n c\u1ea7n \u0111\u1ea3m b\u1ea3o r\u1eb1ng m\u00ecnh \u0111\u00e3 \u0111\u0103ng nh\u1eadp v\u00e0o t\u00e0i kho\u1ea3n npm. B\u1ea1n c\u00f3 th\u1ec3 \u0111\u0103ng nh\u1eadp b\u1eb1ng l\u1ec7nh sau v\u00e0 nh\u1eadp th\u00f4ng tin t\u00e0i kho\u1ea3n khi \u0111\u01b0\u1ee3c y\u00eau c\u1ea7u.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm login<\/code><\/pre>\n\n\n\n<p>\u0110\u1ec3 x\u00f3a m\u1ed9t phi\u00ean b\u1ea3n c\u1ee5 th\u1ec3 c\u1ee7a package kh\u1ecfi registry, h\u00e3y s\u1eed d\u1ee5ng l\u1ec7nh <code>npm unpublish<\/code> theo c\u00fa ph\u00e1p sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm unpublish &lt;t\u00ean_package&gt;@&lt;phi\u00ean_b\u1ea3n&gt;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>npm unpublish lodash@4.17.21<\/code><\/pre>\n\n\n\n<p>Sau khi g\u1ee1 package kh\u1ecfi registry, b\u1ea1n n\u00ean x\u00f3a b\u1ed9 nh\u1edb cache c\u1ee7a npm \u0111\u1ec3 lo\u1ea1i b\u1ecf m\u1ecdi tham chi\u1ebfu c\u00f2n s\u00f3t l\u1ea1i \u0111\u1ebfn package \u0111\u00e3 b\u1ecb x\u00f3a, b\u1eb1ng c\u00e1ch ch\u1ea1y l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm cache clean -f<\/code><\/pre>\n\n\n\n<p>Ngo\u00e0i ra, b\u1ea1n c\u0169ng n\u00ean l\u01b0u \u00fd r\u1eb1ng npm unpublish ch\u1ec9 n\u00ean s\u1eed d\u1ee5ng cho package ch\u01b0a \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i. B\u1edfi v\u00ec npm c\u1ea5m x\u00f3a ho\u00e0n to\u00e0n c\u00e1c package \u0111\u00e3 \u0111\u01b0\u1ee3c publish h\u01a1n 24 gi\u1edd, ho\u1eb7c tr\u1eeb khi c\u00f3 quy\u1ec1n admin registry n\u1ed9i b\u1ed9.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cac-cau-h\u1ecfi-th\u01b0\u1eddng-g\u1eb7p-v\u1ec1-npm-remove-package\"><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_thuong_gap_ve_npm_remove_package\"><\/span><strong>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 npm remove package<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-l\u1ec7nh-npm-remove-co-xoa-package-kh\u1ecfi-th\u01b0-m\u1ee5c-node-modules-khong\"><strong>L\u1ec7nh npm remove c\u00f3 x\u00f3a package kh\u1ecfi th\u01b0 m\u1ee5c node_modules kh\u00f4ng?<\/strong><\/h3>\n\n\n\n<p>C\u00f3. L\u1ec7nh npm remove s\u1ebd x\u00f3a package kh\u1ecfi th\u01b0 m\u1ee5c node_modules v\u00e0 \u0111\u1ed3ng th\u1eddi c\u1eadp nh\u1eadt file package.json \u0111\u1ec3 lo\u1ea1i b\u1ecf dependency \u0111\u00f3. Khi b\u1ea1n ch\u1ea1y l\u1ec7nh n\u00e0y, npm s\u1ebd t\u1ef1 \u0111\u1ed9ng g\u1ee1 to\u00e0n b\u1ed9 t\u1ec7p li\u00ean quan \u0111\u1ebfn package b\u1ecb x\u00f3a, gi\u00fap d\u1ef1 \u00e1n s\u1ea1ch h\u01a1n v\u00e0 tr\u00e1nh l\u1ed7i xung \u0111\u1ed9t th\u01b0 vi\u1ec7n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-g\u1ee1-b\u1ecf-m\u1ed9t-devdependency-khac-gi-so-v\u1edbi-dependency-thong-th\u01b0\u1eddng\"><strong>G\u1ee1 b\u1ecf m\u1ed9t devDependency kh\u00e1c g\u00ec so v\u1edbi dependency th\u00f4ng th\u01b0\u1eddng?<\/strong><\/h3>\n\n\n\n<p>C\u00e1ch th\u1ef1c hi\u1ec7n t\u01b0\u01a1ng t\u1ef1 nhau, nh\u01b0ng kh\u00e1c \u1edf v\u1ecb tr\u00ed \u0111\u01b0\u1ee3c x\u00f3a trong package.json. Khi g\u1ee1 m\u1ed9t devDependency, npm s\u1ebd lo\u1ea1i b\u1ecf n\u00f3 kh\u1ecfi ph\u1ea7n &#8220;devDependencies&#8221; (c\u00e1c g\u00f3i d\u00f9ng trong m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n). Trong khi \u0111\u00f3, g\u1ee1 m\u1ed9t dependency th\u00f4ng th\u01b0\u1eddng s\u1ebd \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn ph\u1ea7n &#8220;dependencies&#8221; (c\u00e1c g\u00f3i c\u1ea7n thi\u1ebft cho s\u1ea3n ph\u1ea9m ch\u1ea1y th\u1ef1c t\u1ebf).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-npm-prune-la-gi\"><strong>npm prune l\u00e0 g\u00ec?<\/strong><\/h3>\n\n\n\n<p>L\u1ec7nh n\u00e0y d\u00f9ng \u0111\u1ec3 x\u00f3a c\u00e1c package \u201cd\u01b0 th\u1eeba\u201d (extraneous packages). N\u1ebfu b\u1ea1n ch\u1ec9 \u0111\u1ecbnh t\u00ean m\u1ed9t package c\u1ee5 th\u1ec3, th\u00ec ch\u1ec9 nh\u1eefng package tr\u00f9ng kh\u1edbp v\u1edbi t\u00ean \u0111\u01b0\u1ee3c cung c\u1ea5p m\u1edbi b\u1ecb x\u00f3a. Package d\u01b0 th\u1eeba l\u00e0 nh\u1eefng package c\u00f3 trong th\u01b0 m\u1ee5c node_modules nh\u01b0ng kh\u00f4ng \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea trong danh s\u00e1ch dependency c\u1ee7a b\u1ea5t k\u1ef3 package n\u00e0o trong d\u1ef1 \u00e1n.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>N\u1ebfu b\u1ea1n th\u00eam flag <code>--production<\/code> ho\u1eb7c khi bi\u1ebfn m\u00f4i tr\u01b0\u1eddng NODE_ENV \u0111\u01b0\u1ee3c \u0111\u1eb7t l\u00e0 production, l\u1ec7nh n\u00e0y s\u1ebd x\u00f3a c\u00e1c package n\u1eb1m trong ph\u1ea7n devDependencies.<\/li>\n\n\n\n<li>Ng\u01b0\u1ee3c l\u1ea1i, s\u1eed d\u1ee5ng <code>--no-production<\/code> s\u1ebd v\u00f4 hi\u1ec7u h\u00f3a vi\u1ec7c NODE_ENV \u0111ang \u0111\u01b0\u1ee3c \u0111\u1eb7t \u1edf ch\u1ebf \u0111\u1ed9 production.<\/li>\n\n\n\n<li>N\u1ebfu th\u00eam flag <code>--dry-run<\/code>, kh\u00f4ng c\u00f3 thay \u0111\u1ed5i th\u1ef1c t\u1ebf n\u00e0o \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n.<\/li>\n\n\n\n<li>N\u1ebfu s\u1eed d\u1ee5ng flag <code>--json<\/code>, c\u00e1c thay \u0111\u1ed5i m\u00e0 <code>npm prune<\/code> \u0111\u00e3 (ho\u1eb7c s\u1ebd) th\u1ef1c hi\u1ec7n s\u1ebd \u0111\u01b0\u1ee3c in ra d\u01b0\u1edbi d\u1ea1ng \u0111\u1ed1i t\u01b0\u1ee3ng JSON.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-t\u1ed5ng-k\u1ebft\"><span class=\"ez-toc-section\" id=\"Tong_ket\"><\/span><strong>T\u1ed5ng k\u1ebft<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>NPM remove package kh\u00f4ng ch\u1ec9 l\u00e0 l\u1ec7nh gi\u00fap b\u1ea1n x\u00f3a g\u00f3i kh\u1ecfi d\u1ef1 \u00e1n, m\u00e0 c\u00f2n l\u00e0 b\u01b0\u1edbc quan tr\u1ecdng trong vi\u1ec7c gi\u1eef cho m\u00f4i tr\u01b0\u1eddng l\u1eadp tr\u00ecnh lu\u00f4n s\u1ea1ch s\u1ebd v\u00e0 d\u1ec5 b\u1ea3o tr\u00ec. Hi\u1ec3u r\u00f5 c\u00e1ch s\u1eed d\u1ee5ng v\u00e0 nh\u1eefng t\u00f9y ch\u1ecdn m\u1edf r\u1ed9ng c\u1ee7a npm remove gi\u00fap b\u1ea1n t\u1ed1i \u01b0u quy tr\u00ecnh ph\u00e1t tri\u1ec3n, ti\u1ebft ki\u1ec7m dung l\u01b0\u1ee3ng v\u00e0 tr\u00e1nh xung \u0111\u1ed9t dependency kh\u00f4ng c\u1ea7n thi\u1ebft.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>NPM remove package l\u00e0 thao t\u00e1c c\u01a1 b\u1ea3n nh\u01b0ng quan tr\u1ecdng gi\u00fap l\u1eadp tr\u00ecnh vi\u00ean lo\u1ea1i b\u1ecf nh\u1eefng g\u00f3i th\u01b0 vi\u1ec7n kh\u00f4ng c\u00f2n s\u1eed d\u1ee5ng trong d\u1ef1 \u00e1n Node.js, d\u00f9 b\u1ea1n \u0111ang d\u1ecdn d\u1eb9p c\u00e1c dependency, x\u1eed l\u00fd s\u1ef1 c\u1ed1, hay t\u1ed1i \u01b0u k\u00edch th\u01b0\u1edbc d\u1ef1 \u00e1n, vi\u1ec7c g\u1ee1 package \u0111\u00fang c\u00e1ch s\u1ebd gi\u00fap d\u1ef1 [&hellip;]<\/p>\n","protected":false},"author":95,"featured_media":93933,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109],"tags":[],"class_list":["post-93930","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>NPM remove package: C\u00e1ch xo\u00e1 package kh\u1ecfi d\u1ef1 \u00e1n NodeJS - ITviec Blog<\/title>\n<meta name=\"description\" content=\"H\u01b0\u1edbng d\u1eabn chi ti\u1ebft c\u00e1ch d\u00f9ng l\u1ec7nh npm remove package \u0111\u1ec3 nhanh ch\u00f3ng g\u1ee1 b\u1ecf c\u00e1c package kh\u00f4ng c\u00f2n c\u1ea7n thi\u1ebft trong d\u1ef1 \u00e1n Node.js.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NPM remove package: C\u00e1ch xo\u00e1 package kh\u1ecfi d\u1ef1 \u00e1n NodeJS\" \/>\n<meta property=\"og:description\" content=\"NPM remove package l\u00e0 thao t\u00e1c c\u01a1 b\u1ea3n nh\u01b0ng quan tr\u1ecdng gi\u00fap l\u1eadp tr\u00ecnh vi\u00ean lo\u1ea1i b\u1ecf nh\u1eefng g\u00f3i th\u01b0 vi\u1ec7n kh\u00f4ng c\u00f2n s\u1eed d\u1ee5ng trong d\u1ef1 \u00e1n Node.js, d\u00f9 b\u1ea1n \u0111ang\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-30T08:46:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-30T08:46:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-remove-package-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"421\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tuong Uyen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tuong Uyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"NPM remove package: C\u00e1ch xo\u00e1 package kh\u1ecfi d\u1ef1 \u00e1n NodeJS - ITviec Blog","description":"H\u01b0\u1edbng d\u1eabn chi ti\u1ebft c\u00e1ch d\u00f9ng l\u1ec7nh npm remove package \u0111\u1ec3 nhanh ch\u00f3ng g\u1ee1 b\u1ecf c\u00e1c package kh\u00f4ng c\u00f2n c\u1ea7n thi\u1ebft trong d\u1ef1 \u00e1n Node.js.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/","og_locale":"vi_VN","og_type":"article","og_title":"NPM remove package: C\u00e1ch xo\u00e1 package kh\u1ecfi d\u1ef1 \u00e1n NodeJS","og_description":"NPM remove package l\u00e0 thao t\u00e1c c\u01a1 b\u1ea3n nh\u01b0ng quan tr\u1ecdng gi\u00fap l\u1eadp tr\u00ecnh vi\u00ean lo\u1ea1i b\u1ecf nh\u1eefng g\u00f3i th\u01b0 vi\u1ec7n kh\u00f4ng c\u00f2n s\u1eed d\u1ee5ng trong d\u1ef1 \u00e1n Node.js, d\u00f9 b\u1ea1n \u0111ang","og_url":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2025-12-30T08:46:12+00:00","article_modified_time":"2025-12-30T08:46:14+00:00","og_image":[{"width":800,"height":421,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-remove-package-scaled.png","type":"image\/png"}],"author":"Tuong Uyen","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Tuong Uyen","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"11 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/"},"author":{"name":"Tuong Uyen","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/e97d0e359f8840eaea7dc3a96006a8d4"},"headline":"NPM remove package: C\u00e1ch xo\u00e1 package kh\u1ecfi d\u1ef1 \u00e1n NodeJS","datePublished":"2025-12-30T08:46:12+00:00","dateModified":"2025-12-30T08:46:14+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/"},"wordCount":2938,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-remove-package-scaled.png","articleSection":["Chuy\u00ean m\u00f4n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/","url":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/","name":"NPM remove package: C\u00e1ch xo\u00e1 package kh\u1ecfi d\u1ef1 \u00e1n NodeJS - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-remove-package-scaled.png","datePublished":"2025-12-30T08:46:12+00:00","dateModified":"2025-12-30T08:46:14+00:00","description":"H\u01b0\u1edbng d\u1eabn chi ti\u1ebft c\u00e1ch d\u00f9ng l\u1ec7nh npm remove package \u0111\u1ec3 nhanh ch\u00f3ng g\u1ee1 b\u1ecf c\u00e1c package kh\u00f4ng c\u00f2n c\u1ea7n thi\u1ebft trong d\u1ef1 \u00e1n Node.js.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-remove-package-scaled.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-remove-package-scaled.png","width":800,"height":421,"caption":"npm remove package - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-remove-package\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Chuy\u00ean m\u00f4n IT","item":"https:\/\/itviec.com\/blog\/chuyen-mon-it\/"},{"@type":"ListItem","position":2,"name":"NPM remove package: C\u00e1ch xo\u00e1 package kh\u1ecfi d\u1ef1 \u00e1n NodeJS"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/e97d0e359f8840eaea7dc3a96006a8d4","name":"Tuong Uyen","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2022\/10\/tuong-uyen-profile-picture-100x100.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2022\/10\/tuong-uyen-profile-picture-100x100.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2022\/10\/tuong-uyen-profile-picture-100x100.jpg","caption":"Tuong Uyen"},"url":"https:\/\/itviec.com\/blog\/author\/tuong-uyen-pikachu\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/95"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=93930"}],"version-history":[{"count":3,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93930\/revisions"}],"predecessor-version":[{"id":93934,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93930\/revisions\/93934"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/93933"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=93930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=93930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=93930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}