{"id":93935,"date":"2025-12-30T16:11:41","date_gmt":"2025-12-30T09:11:41","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=93935"},"modified":"2025-12-30T16:11:43","modified_gmt":"2025-12-30T09:11:43","slug":"huong-dan-npm-update-package","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/","title":{"rendered":"NPM update package: H\u01b0\u1edbng d\u1eabn c\u1eadp nh\u1eadt g\u00f3i trong 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-update-package\/#Tong_quan_ve_npm_update_package\" >T\u1ed5ng quan v\u1ec1 npm update package&nbsp;<\/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-update-package\/#Cach_hoat_dong_cua_lenh_npm_update_package\" >C\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a l\u1ec7nh npm update package&nbsp;<\/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-update-package\/#Cach_su_dung_npm_outdated_de_kiem_tra_cac_package_loi_thoi\" >C\u00e1ch s\u1eed d\u1ee5ng npm outdated \u0111\u1ec3 ki\u1ec3m tra c\u00e1c package l\u1ed7i th\u1eddi<\/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-update-package\/#Cach_su_dung_npm-check-updates\" >C\u00e1ch s\u1eed d\u1ee5ng npm-check-updates<\/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-update-package\/#Cac_cau_hoi_thuong_gap_ve_npm_update_package\" >C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 npm update package<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/#Tong_ket\" >T\u1ed5ng k\u1ebft<\/a><\/li><\/ul><\/nav><\/div>\n\n<p><strong><em>npm update package l\u00e0 thao t\u00e1c c\u01a1 b\u1ea3n nh\u01b0ng v\u00f4 c\u00f9ng quan tr\u1ecdng trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n d\u1ef1 \u00e1n Node.js. Vi\u1ec7c c\u1eadp nh\u1eadt c\u00e1c package kh\u00f4ng ch\u1ec9 gi\u00fap b\u1ea1n t\u1eadn d\u1ee5ng c\u00e1c t\u00ednh n\u0103ng m\u1edbi m\u00e0 c\u00f2n v\u00e1 l\u1ed7i v\u00e0 c\u1ea3i thi\u1ec7n hi\u1ec7u n\u0103ng \u1ee9ng d\u1ee5ng.<\/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 update package, t\u1ea7m quan tr\u1ecdng c\u0169ng nh\u01b0 th\u00e1ch th\u1ee9c c\u1ee7a c\u00e2u l\u1ec7nh n\u00e0y.\u00a0<\/li>\n\n\n\n<li>T\u1ed5ng h\u1ee3p 4 c\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a l\u1ec7nh update trong npm.<\/li>\n\n\n\n<li>C\u00e1ch s\u1eed d\u1ee5ng c\u00e2u l\u1ec7nh npm outdated v\u00e0 npm-check-updates \u0111\u1ec3 ki\u1ec3m tra c\u00e1c package.\u00a0<\/li>\n\n\n\n<li>M\u1ed9t s\u1ed1 c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 npm update.\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-t\u1ed5ng-quan-v\u1ec1-npm-update-package-nbsp\"><span class=\"ez-toc-section\" id=\"Tong_quan_ve_npm_update_package\"><\/span><strong>T\u1ed5ng quan v\u1ec1 npm update package&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>L\u1ec7nh npm update \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 c\u1eadp nh\u1eadt c\u00e1c dependencies \u0111\u00e3 c\u00e0i \u0111\u1eb7t trong d\u1ef1 \u00e1n <a href=\"https:\/\/itviec.com\/blog\/nodejs-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Node.js<\/a>. L\u1ec7nh n\u00e0y s\u1ebd n\u00e2ng c\u1ea5p c\u00e1c g\u00f3i l\u00ean phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t d\u1ef1a tr\u00ean gi\u1edbi h\u1ea1n phi\u00ean b\u1ea3n (version constraints) \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a trong file package.json.<\/p>\n\n\n\n<p>Vi\u1ec7c c\u1eadp nh\u1eadt dependencies \u0111\u00f3ng vai tr\u00f2 quan tr\u1ecdng trong vi\u1ec7c v\u00e1 c\u00e1c l\u1ed7 h\u1ed5ng b\u1ea3o m\u1eadt, s\u1eeda l\u1ed7i, c\u1ea3i thi\u1ec7n hi\u1ec7u n\u0103ng v\u00e0 \u0111\u1ea3m b\u1ea3o kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch c\u1ee7a \u1ee9ng d\u1ee5ng. Tuy nhi\u00ean, n\u1ebfu c\u1eadp nh\u1eadt m\u1ed9t c\u00e1ch t\u00f9y ti\u1ec7n t\u1ea5t c\u1ea3 c\u00e1c g\u00f3i m\u00e0 kh\u00f4ng ki\u1ec3m so\u00e1t, b\u1ea1n c\u00f3 th\u1ec3 g\u1eb7p ph\u1ea3i nhi\u1ec1u l\u1ed7i kh\u00f4ng mong mu\u1ed1n.&nbsp;<\/p>\n\n\n\n<p>V\u00ec v\u1eady, vi\u1ec7c n\u1eafm v\u1eefng c\u00e1ch c\u1eadp nh\u1eadt t\u1eebng package \u0111\u00fang c\u00e1ch l\u00e0 \u0111i\u1ec1u c\u1ea7n thi\u1ebft. C\u00e1c b\u1ea3n c\u1eadp nh\u1eadt m\u1edbi th\u01b0\u1eddng mang \u0111\u1ebfn nh\u1eefng t\u00ednh n\u0103ng v\u00e0 c\u1ea3i ti\u1ebfn gi\u00fap n\u00e2ng cao tr\u1ea3i nghi\u1ec7m ph\u00e1t tri\u1ec3n cho l\u1eadp tr\u00ecnh vi\u00ean.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-t\u1ea7m-quan-tr\u1ecdng-c\u1ee7a-vi\u1ec7c-c\u1eadp-nh\u1eadt-package-npm-nbsp\"><strong>T\u1ea7m quan tr\u1ecdng c\u1ee7a vi\u1ec7c c\u1eadp nh\u1eadt package npm&nbsp;<\/strong><\/h3>\n\n\n\n<p>C\u1eadp nh\u1eadt g\u00f3i npm l\u00e0 c\u00e1ch gi\u00fap \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n ho\u1ea1t \u0111\u1ed9ng m\u01b0\u1ee3t m\u00e0 v\u00e0 an to\u00e0n h\u01a1n. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 v\u00ed d\u1ee5 th\u1ef1c t\u1ebf cho th\u1ea5y l\u00fd do t\u1ea1i sao vi\u1ec7c c\u1eadp nh\u1eadt package l\u1ea1i quan tr\u1ecdng.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>V\u1ea5n \u0111\u1ec1 t\u01b0\u01a1ng th\u00edch: <\/strong>M\u1ed9t s\u1ed1 package c\u00f3 th\u1ec3 ng\u1eebng ho\u1ea1t \u0111\u1ed9ng khi b\u1ea1n n\u00e2ng c\u1ea5p l\u00ean phi\u00ean b\u1ea3n Node.js m\u1edbi h\u01a1n ho\u1eb7c khi c\u00e1c dependencies kh\u00e1c thay \u0111\u1ed5i. Vi\u1ec7c th\u01b0\u1eddng xuy\u00ean c\u1eadp nh\u1eadt gi\u00fap \u0111\u1ea3m b\u1ea3o d\u1ef1 \u00e1n lu\u00f4n t\u01b0\u01a1ng th\u00edch v\u1edbi m\u00f4i tr\u01b0\u1eddng h\u1ec7 th\u1ed1ng m\u1edbi nh\u1ea5t c\u1ee7a Node.js.<\/li>\n\n\n\n<li><strong>C\u1ea3i thi\u1ec7n hi\u1ec7u n\u0103ng:<\/strong> C\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n li\u00ean t\u1ee5c t\u1ed1i \u01b0u h\u00f3a package \u0111\u1ec3 n\u00e2ng cao t\u1ed1c \u0111\u1ed9, gi\u1ea3m r\u00f2 r\u1ec9 b\u1ed9 nh\u1edb v\u00e0 t\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t. C\u1eadp nh\u1eadt l\u00ean phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t (trong ph\u1ea1m vi cho ph\u00e9p) c\u00f3 th\u1ec3 gi\u00fap \u1ee9ng d\u1ee5ng ch\u1ea1y nhanh h\u01a1n v\u00e0 \u1ed5n \u0111\u1ecbnh h\u01a1n.<\/li>\n\n\n\n<li><strong>S\u1eeda l\u1ed7i:<\/strong> N\u1ebfu m\u1ed9t package \u0111ang g\u1eb7p l\u1ed7i \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n, vi\u1ec7c c\u1eadp nh\u1eadt l\u00ean phi\u00ean b\u1ea3n m\u1edbi th\u01b0\u1eddng s\u1ebd kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1 n\u00e0y.<\/li>\n\n\n\n<li><strong>B\u1ea3o m\u1eadt:<\/strong> Nhi\u1ec1u package s\u1ebd ch\u1ee9a l\u1ed7 h\u1ecfng b\u1ea3o m\u1eadt nghi\u00eam tr\u1ecdng nh\u01b0 RCE, prototype pollution hay XSS. Vi\u1ec7c c\u1eadp nh\u1eadt package k\u1ecbp th\u1eddi, \u0111\u1eb7c bi\u1ec7t qua c\u00e1c b\u1ea3n v\u00e1 patch l\u00e0 bi\u1ec7n ph\u00e1p ph\u00f2ng th\u1ee7 \u0111\u1ea7u ti\u00ean \u0111\u1ec3 b\u1ea3o v\u1ec7 \u1ee9ng d\u1ee5ng kh\u1ecfi c\u00e1c cu\u1ed9c t\u1ea5n c\u00f4ng.<\/li>\n\n\n\n<li><strong>T\u00ednh n\u0103ng m\u1edbi:<\/strong> C\u00e1c b\u1ea3n c\u1eadp nh\u1eadt trong ph\u1ea1m vi cho ph\u00e9p th\u01b0\u1eddng bao g\u1ed3m s\u1eeda l\u1ed7i, c\u1ea3i thi\u1ec7n hi\u1ec7u n\u0103ng v\u00e0 \u0111\u00f4i khi l\u00e0 t\u00ednh n\u0103ng nh\u1ecf, gi\u00fap duy tr\u00ec \u1ee9ng d\u1ee5ng \u1ed5n \u0111\u1ecbnh v\u00e0 an to\u00e0n.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-m\u1ed9t-s\u1ed1-thach-th\u1ee9c-khi-update-package-nbsp\"><strong>M\u1ed9t s\u1ed1 th\u00e1ch th\u1ee9c khi update package&nbsp;<\/strong><\/h3>\n\n\n\n<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 h\u1ea1n ch\u1ebf khi s\u1eed d\u1ee5ng npm \u0111\u1ec3 c\u1eadp nh\u1eadt package b\u1ea1n c\u1ea7n l\u01b0u \u00fd<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Thay \u0111\u1ed5i ch\u1ee9c n\u0103ng:<\/strong> Vi\u1ec7c c\u1eadp nh\u1eadt package c\u00f3 th\u1ec3 l\u00e0m thay \u0111\u1ed5i ho\u1eb7c lo\u1ea1i b\u1ecf m\u1ed9t s\u1ed1 ch\u1ee9c n\u0103ng, khi\u1ebfn d\u1ef1 \u00e1n g\u1eb7p l\u1ed7i. Do \u0111\u00f3, tr\u01b0\u1edbc khi c\u1eadp nh\u1eadt, h\u00e3y ki\u1ec3m tra changelog c\u1ee7a package \u0111\u1ec3 xem c\u00e1c thay \u0111\u1ed5i v\u00e0 th\u1eed nghi\u1ec7m tr\u00ean m\u1ed9t nh\u00e1nh ri\u00eang (branch) tr\u01b0\u1edbc khi \u00e1p d\u1ee5ng v\u00e0o d\u1ef1 \u00e1n ch\u00ednh.<\/li>\n\n\n\n<li><strong>Xung \u0111\u1ed9t gi\u1eefa c\u00e1c dependencies:<\/strong> \u0110\u1ec3 kh\u1eafc ph\u1ee5c, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng l\u1ec7nh npm ls \u0111\u1ec3 ki\u1ec3m tra c\u00e2y dependencies v\u00e0 gi\u1eef file package-lock.json \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh t\u01b0\u01a1ng th\u00edch. \u0110\u1ed3ng th\u1eddi, tr\u00e1nh ch\u1ec9nh s\u1eeda th\u1ee7 c\u00f4ng node_modules ho\u1eb7c package-lock.json, d\u00f9ng npm install \u0111\u1ec3 c\u1eadp nh\u1eadt c\u00f3 ki\u1ec3m so\u00e1t.<\/li>\n\n\n\n<li><strong>Phi\u00ean b\u1ea3n m\u1edbi kh\u00f4ng \u1ed5n \u0111\u1ecbnh:<\/strong> Tr\u00e1nh c\u00e0i \u0111\u1eb7t m\u00f9 qu\u00e1ng c\u00e1c phi\u00ean b\u1ea3n g\u1eafn th\u1ebb @latest. H\u00e3y xem ph\u1ea3n h\u1ed3i c\u1ee7a c\u1ed9ng \u0111\u1ed3ng v\u00e0 ki\u1ec3m th\u1eed tr\u00ean m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n (development environment) tr\u01b0\u1edbc khi tri\u1ec3n khai ch\u00ednh th\u1ee9c.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cach-ho\u1ea1t-d\u1ed9ng-c\u1ee7a-l\u1ec7nh-npm-update-package-nbsp\"><span class=\"ez-toc-section\" id=\"Cach_hoat_dong_cua_lenh_npm_update_package\"><\/span><strong>C\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a l\u1ec7nh npm update package&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>L\u1ec7nh npm update package kh\u00f4ng ch\u1ec9 \u0111\u01a1n gi\u1ea3n l\u00e0 n\u00e2ng c\u1ea5p phi\u00ean b\u1ea3n c\u00e1c g\u00f3i trong d\u1ef1 \u00e1n Node.js, m\u00e0 c\u00f2n tu\u00e2n theo m\u1ed9t c\u01a1 ch\u1ebf ki\u1ec3m tra v\u00e0 c\u1eadp nh\u1eadt c\u00f3 quy t\u1eafc r\u00f5 r\u00e0ng d\u1ef1a tr\u00ean th\u00f4ng tin trong file package.json v\u00e0 package-lock.json.&nbsp;<\/p>\n\n\n\n<p>\u1ede ph\u1ea7n d\u01b0\u1edbi \u0111\u00e2y, ITviec s\u1ebd gi\u1ea3i \u0111\u00e1p chi ti\u1ebft t\u1eebng b\u01b0\u1edbc m\u00e0 npm th\u1ef1c hi\u1ec7n khi b\u1ea1n ch\u1ea1y l\u1ec7nh n\u00e0y.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-c\u1eadp-nh\u1eadt-single-package\"><strong>C\u1eadp nh\u1eadt single package<\/strong><\/h3>\n\n\n\n<p>L\u1ec7nh n\u00e0y \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 c\u1eadp nh\u1eadt m\u1ed9t package c\u1ee5 th\u1ec3 trong d\u1ef1 \u00e1n ho\u1eb7c tr\u00ean h\u1ec7 th\u1ed1ng. B\u1ea1n ch\u1ec9 c\u1ea7n ch\u1ea1y l\u1ec7nh npm update k\u00e8m theo t\u00ean package c\u1ea7n c\u1eadp nh\u1eadt. C\u00e1ch n\u00e0y s\u1ebd ph\u00f9 h\u1ee3p khi b\u1ea1n ch\u1ec9 mu\u1ed1n c\u1eadp nh\u1eadt m\u1ed9t g\u00f3i c\u1ea7n thi\u1ebft, tr\u00e1nh \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn c\u00e1c dependencies kh\u00e1c.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm update &lt;package-name&gt;<\/code><\/pre>\n\n\n\n<p>Khi th\u1ef1c hi\u1ec7n, npm s\u1ebd ch\u1ec9 c\u1eadp nh\u1eadt package \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh, d\u1ef1a tr\u00ean ph\u1ea1m vi phi\u00ean b\u1ea3n (version range) \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a trong package.json.<\/p>\n\n\n\n<p>Vi\u1ec7c ch\u1ec9 c\u1eadp nh\u1eadt nh\u1eefng package c\u1ea7n thi\u1ebft gi\u00fap b\u1ea1n h\u1ea1n ch\u1ebf c\u00e1c l\u1ed7i ph\u00e1t sinh do c\u00e1c dependencies kh\u00e1c \u0111\u01b0\u1ee3c n\u00e2ng c\u1ea5p c\u00f9ng l\u00fac, \u0111\u1ea3m b\u1ea3o d\u1ef1 \u00e1n ho\u1ea1t \u0111\u1ed9ng \u1ed5n \u0111\u1ecbnh v\u00e0 d\u1ec5 ki\u1ec3m so\u00e1t h\u01a1n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-c\u1eadp-nh\u1eadt-t\u1ea5t-c\u1ea3-cac-package-trong-npm\"><strong>C\u1eadp nh\u1eadt t\u1ea5t c\u1ea3 c\u00e1c package trong npm<\/strong><\/h3>\n\n\n\n<p>Theo m\u1eb7c \u0111\u1ecbnh, l\u1ec7nh <code>npm update<\/code> s\u1ebd c\u1eadp nh\u1eadt c\u00e1c package trong dependencies v\u00e0 devDependencies, l\u00ean phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t d\u1ef1a tr\u00ean tag (nh\u01b0 ^ ho\u1eb7c ~) \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a. N\u00f3 kh\u00f4ng c\u1eadp nh\u1eadt optionalDependencie, peerDependencies hay packages c\u00e0i qua git URL, file local.<\/p>\n\n\n\n<p>C\u00e1c package n\u00e0y \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t c\u1ee5c b\u1ed9 trong th\u01b0 m\u1ee5c d\u1ef1 \u00e1n, c\u1ee5 th\u1ec3 l\u00e0 n\u1eb1m trong th\u01b0 m\u1ee5c node_modules.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm update<\/code><\/pre>\n\n\n\n<p>C\u00f9ng v\u1edbi c\u00e1c b\u00ed danh (aliases) nh\u01b0 up, upgrade hay update. Khi ch\u1ea1y l\u1ec7nh n\u00e0y, npm s\u1ebd t\u1ef1 \u0111\u1ed9ng t\u00ecm v\u00e0 c\u1eadp nh\u1eadt c\u00e1c g\u00f3i ph\u00f9 h\u1ee3p trong ph\u1ea1m vi cho ph\u00e9p, gi\u00fap b\u1ea1n \u0111\u1ea3m b\u1ea3o d\u1ef1 \u00e1n lu\u00f4n \u1edf tr\u1ea1ng th\u00e1i c\u1eadp nh\u1eadt \u1ed5n \u0111\u1ecbnh.<\/p>\n\n\n\n<p>Ngo\u00e0i ra, n\u1ebfu b\u1ea1n mu\u1ed1n c\u1eadp nh\u1eadt t\u1ea5t c\u1ea3 c\u00e1c package \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t to\u00e0n c\u1ee5c (global) l\u00ean phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t, ch\u1ec9 c\u1ea7n th\u00eam t\u00f9y ch\u1ecdn <code>-g<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm update -g<\/code><\/pre>\n\n\n\n<p>C\u00e1c package \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t to\u00e0n c\u1ee5c t\u1ed3n t\u1ea1i \u1edf c\u1ea5p \u0111\u1ed9 h\u1ec7 th\u1ed1ng, kh\u00f4ng ch\u1ec9 ri\u00eang cho m\u1ed9t d\u1ef1 \u00e1n c\u1ee5 th\u1ec3. V\u1ecb tr\u00ed c\u1ee7a c\u00e1c package n\u00e0y ph\u1ee5 thu\u1ed9c v\u00e0o h\u1ec7 \u0111i\u1ec1u h\u00e0nh ho\u1eb7c c\u1ea5u h\u00ecnh h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n.<\/p>\n\n\n\n<p>\u0110\u1ec3 xem danh s\u00e1ch t\u1ea5t c\u1ea3 c\u00e1c package \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t to\u00e0n c\u1ee5c c\u00f9ng v\u1ecb tr\u00ed l\u01b0u tr\u1eef c\u1ee7a ch\u00fang, 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 list -g --depth 0<\/code><\/pre>\n\n\n\n<p>L\u1ec7nh n\u00e0y s\u1ebd hi\u1ec3n th\u1ecb to\u00e0n b\u1ed9 danh s\u00e1ch package global \u0111ang \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t, gi\u00fap b\u1ea1n d\u1ec5 d\u00e0ng qu\u1ea3n l\u00fd v\u00e0 ki\u1ec3m tra phi\u00ean b\u1ea3n c\u1ee7a t\u1eebng g\u00f3i trong m\u00f4i tr\u01b0\u1eddng to\u00e0n h\u1ec7 th\u1ed1ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-c\u1eadp-nh\u1eadt-global-package\"><strong>C\u1eadp nh\u1eadt global package<\/strong><\/h3>\n\n\n\n<p>L\u1ec7nh <code>npm update -g<\/code> \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 c\u1eadp nh\u1eadt t\u1ea5t c\u1ea3 c\u00e1c package \u0111\u00e3 \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t to\u00e0n c\u1ee5c (global) v\u00e0 \u0111ang c\u00f3 phi\u00ean b\u1ea3n l\u1ed7i th\u1eddi\/ Ngh\u0129a l\u00e0 phi\u00ean b\u1ea3n hi\u1ec7n t\u1ea1i kh\u00e1c v\u1edbi phi\u00ean b\u1ea3n \u201cmong mu\u1ed1n\u201d (wanted).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm update -g<\/code><\/pre>\n\n\n\n<p>Khi ch\u1ea1y l\u1ec7nh n\u00e0y, npm s\u1ebd ki\u1ec3m tra to\u00e0n b\u1ed9 danh s\u00e1ch c\u00e1c g\u00f3i to\u00e0n c\u1ee5c v\u00e0 ti\u1ebfn h\u00e0nh c\u1eadp nh\u1eadt t\u1eebng package l\u00ean phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t ph\u00f9 h\u1ee3p theo quy t\u1eafc semantic versioning (semver).<\/p>\n\n\n\n<p>Ngo\u00e0i ra, n\u1ebfu m\u1ed9t package \u0111ang \u1edf phi\u00ean b\u1ea3n m\u1edbi h\u01a1n latest (v\u00ed d\u1ee5 b\u1ea3n beta), npm update s\u1ebd b\u1ecf qua v\u00e0 gi\u1eef nguy\u00ean g\u00f3i \u0111\u00f3, thay v\u00ec t\u1ef1 \u0111\u1ed9ng h\u1ea1 c\u1ea5p xu\u1ed1ng phi\u00ean b\u1ea3n latest.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-c\u1eadp-nh\u1eadt-m\u1ed9t-phien-b\u1ea3n-c\u1ee5-th\u1ec3-specific-version\"><strong>C\u1eadp nh\u1eadt m\u1ed9t phi\u00ean b\u1ea3n c\u1ee5 th\u1ec3 (specific version)<\/strong><\/h3>\n\n\n\n<p>npm cung c\u1ea5p nhi\u1ec1u c\u00e1ch kh\u00e1c nhau \u0111\u1ec3 c\u1eadp nh\u1eadt m\u1ed9t package c\u1ee5 th\u1ec3 trong d\u1ef1 \u00e1n. \u0110\u1ec3 c\u1eadp nh\u1eadt m\u1ed9t package c\u1ee5 th\u1ec3, b\u1ea1n c\u00f3 th\u1ec3 \u00e1p d\u1ee5ng c\u00e1c c\u00e1ch nh\u01b0 sau&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-c\u1eadp-nh\u1eadt-m\u1ed9t-package-c\u1ee5-th\u1ec3-len-phien-b\u1ea3n-m\u1edbi-nh\u1ea5t-theo-tag-trong-package-json\"><strong>C\u1eadp nh\u1eadt m\u1ed9t package c\u1ee5 th\u1ec3 l\u00ean phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t (theo tag trong package.json)<\/strong><\/h4>\n\n\n\n<p>Ph\u01b0\u01a1ng ph\u00e1p n\u00e0y s\u1ebd c\u1eadp nh\u1eadt package l\u00ean phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t c\u00f3 s\u1eb5n, nh\u01b0ng v\u1eabn tu\u00e2n theo gi\u1edbi h\u1ea1n phi\u00ean b\u1ea3n (version constraint) \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a trong package.json.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm update &lt;package-name&gt;<\/code><\/pre>\n\n\n\n<p>V\u00ed d\u1ee5 nh\u01b0 b\u1ea1n \u0111ang c\u00e0i \u0111\u1eb7t Cypress@12.17.4, trong khi phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t l\u00e0 14.0.1. Tuy nhi\u00ean, trong file package.json, b\u1ea1n gi\u1edbi h\u1ea1n phi\u00ean b\u1ea3n l\u00e0 13.17.*. Khi ch\u1ea1y l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm update cypress<\/code><\/pre>\n\n\n\n<p>L\u00fac n\u00e0y npm s\u1ebd ch\u1ec9 c\u1eadp nh\u1eadt Cypress l\u00ean b\u1ea3n m\u1edbi nh\u1ea5t trong ph\u1ea1m vi 13.17, ch\u1ee9 kh\u00f4ng v\u01b0\u1ee3t qu\u00e1 gi\u1edbi h\u1ea1n \u0111\u00e3 \u0111\u1eb7t.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-c\u1eadp-nh\u1eadt-package-len-m\u1ed9t-phien-b\u1ea3n-c\u1ee5-th\u1ec3\"><strong>C\u1eadp nh\u1eadt package l\u00ean m\u1ed9t phi\u00ean b\u1ea3n c\u1ee5 th\u1ec3<\/strong><\/h4>\n\n\n\n<p>Trong tr\u01b0\u1eddng h\u1ee3p b\u1ea1n mu\u1ed1n c\u00e0i m\u1ed9t phi\u00ean b\u1ea3n ch\u00ednh x\u00e1c \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh t\u01b0\u01a1ng th\u00edch v\u1edbi c\u00e1c package kh\u00e1c, l\u1ec7nh npm update s\u1ebd kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng. Thay v\u00e0o \u0111\u00f3, b\u1ea1n c\u1ea7n s\u1eed d\u1ee5ng l\u1ec7nh<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install &lt;package-name&gt;@&lt;version&gt;<\/code><\/pre>\n\n\n\n<p>C\u00e1ch n\u00e0y gi\u00fap \u0111\u1ea3m b\u1ea3o r\u1eb1ng phi\u00ean b\u1ea3n mong mu\u1ed1n \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t ch\u00ednh x\u00e1c, ph\u1ee5c v\u1ee5 m\u1ee5c \u0111\u00edch ki\u1ec3m th\u1eed ho\u1eb7c duy tr\u00ec t\u00ednh \u1ed5n \u0111\u1ecbnh cho d\u1ef1 \u00e1n.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-c\u1eadp-nh\u1eadt-package-len-phien-b\u1ea3n-\u1ed5n-d\u1ecbnh-stable-m\u1edbi-nh\u1ea5t\"><strong>C\u1eadp nh\u1eadt package l\u00ean phi\u00ean b\u1ea3n \u1ed5n \u0111\u1ecbnh (stable) m\u1edbi nh\u1ea5t<\/strong><\/h4>\n\n\n\n<p>M\u1eb7c d\u00f9 npm update c\u00f3 th\u1ec3 gi\u00fap c\u1eadp nh\u1eadt package, nh\u01b0ng n\u00f3 v\u1eabn b\u1ecb gi\u1edbi h\u1ea1n b\u1edfi version constraint trong package.json. N\u1ebfu b\u1ea1n mu\u1ed1n b\u1ecf qua gi\u1edbi h\u1ea1n v\u00e0 c\u00e0i \u0111\u1eb7t phi\u00ean b\u1ea3n \u1ed5n \u0111\u1ecbnh m\u1edbi nh\u1ea5t, h\u00e3y d\u00f9ng l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install &lt;package-name&gt;@latest<\/code><\/pre>\n\n\n\n<p>L\u1ec7nh n\u00e0y s\u1ebd bu\u1ed9c npm c\u00e0i \u0111\u1eb7t phi\u00ean b\u1ea3n stable m\u1edbi nh\u1ea5t c\u1ee7a package, ngay c\u1ea3 khi \u0111i\u1ec1u \u0111\u00f3 c\u00f3 th\u1ec3 g\u00e2y xung \u0111\u1ed9t ho\u1eb7c thay \u0111\u1ed5i l\u1edbn so v\u1edbi phi\u00ean b\u1ea3n hi\u1ec7n t\u1ea1i.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cach-s\u1eed-d\u1ee5ng-npm-outdated-d\u1ec3-ki\u1ec3m-tra-cac-package-l\u1ed7i-th\u1eddi\"><span class=\"ez-toc-section\" id=\"Cach_su_dung_npm_outdated_de_kiem_tra_cac_package_loi_thoi\"><\/span><strong>C\u00e1ch s\u1eed d\u1ee5ng npm outdated \u0111\u1ec3 ki\u1ec3m tra c\u00e1c package l\u1ed7i th\u1eddi<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Tr\u01b0\u1edbc khi ti\u1ebfn h\u00e0nh c\u1eadp nh\u1eadt, b\u1ea1n n\u00ean ki\u1ec3m tra xem nh\u1eefng package n\u00e0o trong d\u1ef1 \u00e1n \u0111\u00e3 l\u1ed7i th\u1eddi. H\u00e3y ch\u1ea1y l\u1ec7nh sau \u0111\u1ec3 xem danh s\u00e1ch c\u00e1c g\u00f3i c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm outdated<\/code><\/pre>\n\n\n\n<p>Khi ch\u1ea1y l\u1ec7nh n\u00e0y, b\u1ea1n s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c m\u1ed9t b\u1ea3ng li\u1ec7t k\u00ea chi ti\u1ebft c\u00e1c package c\u00f3 b\u1ea3n c\u1eadp nh\u1eadt m\u1edbi.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Current: <\/strong>Phi\u00ean b\u1ea3n hi\u1ec7n t\u1ea1i \u0111ang \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t trong d\u1ef1 \u00e1n.<\/li>\n\n\n\n<li><strong>Wanted: <\/strong>Phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t t\u01b0\u01a1ng th\u00edch theo ph\u1ea1m vi phi\u00ean b\u1ea3n \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a trong package.json.<\/li>\n\n\n\n<li><strong>Latest: <\/strong>Phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t tuy\u1ec7t \u0111\u1ed1i \u0111ang c\u00f3 s\u1eb5n tr\u00ean npm registry.<\/li>\n<\/ul>\n\n\n\n<p>Vi\u1ec7c ki\u1ec3m tra \u0111\u1ecbnh k\u1ef3 b\u1eb1ng npm outdated gi\u00fap b\u1ea1n theo d\u00f5i nhanh c\u00e1c g\u00f3i c\u1ea7n n\u00e2ng c\u1ea5p, \u0111\u1ea3m b\u1ea3o d\u1ef1 \u00e1n lu\u00f4n c\u1eadp nh\u1eadt, b\u1ea3o m\u1eadt v\u00e0 t\u01b0\u01a1ng th\u00edch t\u1ed1t v\u1edbi m\u00f4i tr\u01b0\u1eddng m\u1edbi nh\u1ea5t.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cach-s\u1eed-d\u1ee5ng-npm-check-updates\"><span class=\"ez-toc-section\" id=\"Cach_su_dung_npm-check-updates\"><\/span><strong>C\u00e1ch s\u1eed d\u1ee5ng npm-check-updates<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u0110\u1ec3 ki\u1ec3m so\u00e1t vi\u1ec7c n\u00e2ng c\u1ea5p ch\u1ee7 \u0111\u1ed9ng v\u00e0 t\u00f9y ch\u1ec9nh h\u01a1n, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng l\u1ec7nh npm-check-updates. C\u00fa ph\u00e1p:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install -g npm-check-updates<\/code><\/pre>\n\n\n\n<p>\u0110i\u1ec3m kh\u00e1c bi\u1ec7t quan tr\u1ecdng:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>npm update c\u1eadp nh\u1eadt node_modules + package-lock.json m\u00e0 kh\u00f4ng thay \u0111\u1ed5i package.json.<\/li>\n\n\n\n<li>npm-check-updates ch\u1ec9 s\u1eeda package.json, kh\u00f4ng ch\u1ea1m v\u00e0o node_modules.<\/li>\n<\/ul>\n\n\n\n<p>Sau \u0111\u00f3, ch\u1ea1y l\u1ec7nh sau \u0111\u1ec3 hi\u1ec3n th\u1ecb danh s\u00e1ch c\u00e1c g\u00f3i c\u1ea7n n\u00e2ng c\u1ea5p. T\u01b0\u01a1ng t\u1ef1 nh\u01b0 npm outdated, l\u1ec7nh n\u00e0y ch\u1ec9 ki\u1ec3m tra m\u00e0 kh\u00f4ng \u00e1p d\u1ee5ng thay \u0111\u1ed5i:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ncu<\/code><\/pre>\n\n\n\n<p>K\u1ebft qu\u1ea3 v\u00ed d\u1ee5 nh\u01b0 sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Checking package.json\n\n&#91;====================] 12\/12 100%\n\n\u00a0@testing-library\/user-event\u00a0 \u00a0 ^13.5.0\u00a0 \u2192\u00a0 ^14.2.1\n\n\u00a0@types\/jest\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ^27.5.2\u00a0 \u2192\u00a0 ^28.1.4\n\n\u00a0@types\/node\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ^16.11.42\u00a0 \u2192\u00a0 ^18.0.1<\/code><\/pre>\n\n\n\n<p>L\u01b0u \u00fd l\u00e0 <code>npm-check-updates<\/code> kh\u00f4ng thay th\u1ebf <code>npm outdated<\/code>, ch\u00fang ph\u1ee5c v\u1ee5 m\u1ee5c \u0111\u00edch kh\u00e1c nhau:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>npm outdated<\/code>: Trong ph\u1ea1m vi r\u00e0ng bu\u1ed9c (d\u00e0nh cho c\u1eadp nh\u1eadt an to\u00e0n).<\/li>\n\n\n\n<li><code>npm-check-updates<\/code>: B\u1ecf qua r\u00e0ng bu\u1ed9c, xem phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t tuy\u1ec7t \u0111\u1ed1i (d\u00e0nh cho n\u00e2ng c\u1ea5p ch\u1ee7 \u0111\u1ed9ng).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-nang-c\u1ea5p-dependencies-trong-package-json\"><strong>N\u00e2ng c\u1ea5p dependencies trong package.json<\/strong><\/h3>\n\n\n\n<p>\u0110\u1ec3 n\u00e2ng c\u1ea5p c\u00e1c g\u00f3i, ch\u1ec9 c\u1ea7n ch\u1ea1y 1 trong 2 l\u1ec7nh sau<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ncu --upgrade<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>ncu -u<\/code><\/pre>\n\n\n\n<p>G\u00f3i npm-check-updates s\u1ebd c\u1eadp nh\u1eadt phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t c\u1ee7a c\u00e1c dependencies trong file package.json, k\u1ec3 c\u1ea3 khi \u0111\u00f3 l\u00e0 phi\u00ean b\u1ea3n c\u00f3 thay \u0111\u1ed5i ph\u00e1 v\u1ee1 (breaking change). L\u01b0u \u00fd r\u1eb1ng l\u1ec7nh n\u00e0y ch\u1ec9 ch\u1ec9nh s\u1eeda package.json, kh\u00f4ng t\u1ef1 \u0111\u1ed9ng c\u00e0i \u0111\u1eb7t l\u1ea1i g\u00f3i.<\/p>\n\n\n\n<p>Sau khi n\u00e2ng c\u1ea5p xong, b\u1ea1n c\u1ea7n ch\u1ea1y th\u00eam l\u1ec7nh install \u0111\u1ec3 c\u1eadp nh\u1eadt l\u1ea1i th\u01b0 m\u1ee5c node_modules v\u00e0 file package-lock.json.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cac-cau-h\u1ecfi-th\u01b0\u1eddng-g\u1eb7p-v\u1ec1-npm-update-package\"><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_thuong_gap_ve_npm_update_package\"><\/span><strong>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 npm update package<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-lam-th\u1ebf-nao-d\u1ec3-c\u1eadp-nh\u1eadt-t\u1ea5t-c\u1ea3-cac-goi-npm-cung-m\u1ed9t-luc\"><strong>L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 c\u1eadp nh\u1eadt t\u1ea5t c\u1ea3 c\u00e1c g\u00f3i npm c\u00f9ng m\u1ed9t l\u00fac?<\/strong><\/h3>\n\n\n\n<p>\u0110\u1ec3 c\u1eadp nh\u1eadt t\u1ea5t c\u1ea3 c\u00e1c package trong d\u1ef1 \u00e1n Node.js, b\u1ea1n ch\u1ec9 c\u1ea7n s\u1eed d\u1ee5ng l\u1ec7nh<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm update<\/code><\/pre>\n\n\n\n<p>L\u1ec7nh n\u00e0y s\u1ebd qu\u00e9t file package.json, ki\u1ec3m tra c\u00e1c g\u00f3i c\u00f3 phi\u00ean b\u1ea3n m\u1edbi h\u01a1n trong ph\u1ea1m vi quy \u0111\u1ecbnh (theo k\u00fd hi\u1ec7u nh\u01b0 ^ ho\u1eb7c ~), sau \u0111\u00f3 t\u1ef1 \u0111\u1ed9ng c\u1eadp nh\u1eadt ch\u00fang trong node_modules.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-lam-sao-d\u1ec3-ki\u1ec3m-tra-nh\u1eefng-package-nao-da-l\u1ed7i-th\u1eddi-outdated\"><strong>L\u00e0m sao \u0111\u1ec3 ki\u1ec3m tra nh\u1eefng package n\u00e0o \u0111\u00e3 l\u1ed7i th\u1eddi (outdated)?<\/strong><\/h3>\n\n\n\n<p>B\u1ea1n c\u00f3 th\u1ec3 d\u00f9ng l\u1ec7nh npm outdated \u0111\u1ec3 ki\u1ec3m tra nh\u1eefng package n\u00e0o \u0111\u00e3 b\u1ecb l\u1ed7i th\u1eddi trong npm. L\u1ec7nh n\u00e0y s\u1ebd hi\u1ec3n th\u1ecb danh s\u00e1ch chi ti\u1ebft g\u1ed3m t\u00ean package, phi\u00ean b\u1ea3n hi\u1ec7n t\u1ea1i, phi\u00ean b\u1ea3n mong mu\u1ed1n (theo package.json) v\u00e0 phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t c\u00f3 s\u1eb5n tr\u00ean registry npm.<\/p>\n\n\n\n<p>B\u1ea3ng k\u1ebft qu\u1ea3 s\u1ebd gi\u00fap b\u1ea1n d\u1ec5 d\u00e0ng x\u00e1c \u0111\u1ecbnh g\u00f3i n\u00e0o c\u1ea7n c\u1eadp nh\u1eadt, t\u1eeb \u0111\u00f3 quy\u1ebft \u0111\u1ecbnh n\u00ean update t\u1eebng ph\u1ea7n hay to\u00e0n b\u1ed9.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-nh\u1eefng-\u1ee9ng-d\u1ee5ng-khi-c\u1eadp-nh\u1eadt-goi-b\u1eb1ng-npm-la-gi\"><strong>Nh\u1eefng \u1ee9ng d\u1ee5ng khi c\u1eadp nh\u1eadt g\u00f3i b\u1eb1ng npm l\u00e0 g\u00ec?<\/strong><\/h3>\n\n\n\n<p>C\u1eadp nh\u1eadt c\u00e1c g\u00f3i npm l\u00e0 vi\u1ec7c c\u1ea7n thi\u1ebft, nh\u01b0ng n\u1ebfu th\u1ef1c hi\u1ec7n sai c\u00e1ch c\u00f3 th\u1ec3 khi\u1ebfn d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n g\u1eb7p l\u1ed7i nghi\u00eam tr\u1ecdng. H\u00e3y tu\u00e2n theo nh\u1eefng tips d\u01b0\u1edbi \u0111\u00e2y \u0111\u1ec3 quy tr\u00ecnh c\u1eadp nh\u1eadt di\u1ec5n ra su\u00f4n s\u1ebb v\u00e0 an to\u00e0n.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ki\u1ec3m tra c\u00e1c g\u00f3i l\u1ed7i th\u1eddi th\u01b0\u1eddng xuy\u00ean: <\/strong>S\u1eed d\u1ee5ng l\u1ec7nh npm outdated ho\u1eb7c c\u00f4ng c\u1ee5 ncu \u0111\u1ec3 ph\u00e1t hi\u1ec7n c\u00e1c dependencies \u0111\u00e3 l\u1ed7i th\u1eddi. Vi\u1ec7c ki\u1ec3m tra \u0111\u1ecbnh k\u1ef3 gi\u00fap b\u1ea1n k\u1ecbp th\u1eddi c\u1eadp nh\u1eadt c\u00e1c b\u1ea3n v\u00e1 b\u1ea3o m\u1eadt v\u00e0 s\u1eeda l\u1ed7i.<\/li>\n\n\n\n<li><strong>S\u1eed d\u1ee5ng gi\u1edbi h\u1ea1n phi\u00ean b\u1ea3n trong package.json: <\/strong>Tu\u00e2n th\u1ee7 quy t\u1eafc semantic versioning (v\u00ed d\u1ee5: ^1.2.3, ~1.2.3) \u0111\u1ec3 tr\u00e1nh nh\u1eefng thay \u0111\u1ed5i l\u1edbn g\u00e2y h\u1ecfng d\u1ef1 \u00e1n, \u0111\u1ed3ng th\u1eddi v\u1eabn cho ph\u00e9p c\u1eadp nh\u1eadt an to\u00e0n trong ph\u1ea1m vi t\u01b0\u01a1ng th\u00edch.<\/li>\n\n\n\n<li><strong>Ki\u1ec3m th\u1eed b\u1ea3n c\u1eadp nh\u1eadt tr\u00ean m\u00f4i tr\u01b0\u1eddng th\u1eadt: <\/strong>Lu\u00f4n th\u1eed nghi\u1ec7m c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt package tr\u00ean m\u00f4i tr\u01b0\u1eddng staging ho\u1eb7c s\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 nh\u01b0 BrowserStack \u0111\u1ec3 ph\u00e1t hi\u1ec7n s\u1edbm c\u00e1c v\u1ea5n \u0111\u1ec1 t\u01b0\u01a1ng th\u00edch tr\u01b0\u1edbc khi tri\u1ec3n khai ch\u00ednh th\u1ee9c.<\/li>\n\n\n\n<li><strong>Sao l\u01b0u file package-lock.json tr\u01b0\u1edbc khi c\u1eadp nh\u1eadt:<\/strong> Tr\u01b0\u1edbc khi update, h\u00e3y t\u1ea1o b\u1ea3n sao l\u01b0u package-lock.json. Khi c\u1ea7n, b\u1ea1n c\u00f3 th\u1ec3 kh\u00f4i ph\u1ee5c l\u1ea1i file n\u00e0y \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n quay v\u1ec1 tr\u1ea1ng th\u00e1i \u1ed5n \u0111\u1ecbnh ban \u0111\u1ea7u.<\/li>\n\n\n\n<li><strong>Ch\u1ec9 c\u1eadp nh\u1eadt khi c\u1ea7n thi\u1ebft:<\/strong> \u01afu ti\u00ean c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt c\u00f3 li\u00ean quan \u0111\u1ebfn v\u00e1 l\u1ed7i b\u1ea3o m\u1eadt ho\u1eb7c s\u1eeda l\u1ed7i quan tr\u1ecdng. Tr\u00e1nh c\u1eadp nh\u1eadt kh\u00f4ng c\u1ea7n thi\u1ebft v\u00ec c\u00f3 th\u1ec3 l\u00e0m ph\u00e1t sinh l\u1ed7i m\u1edbi v\u00e0 \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn ho\u1ea1t \u0111\u1ed9ng c\u1ee7a d\u1ef1 \u00e1n.<\/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 update package kh\u00f4ng ch\u1ec9 \u0111\u01a1n thu\u1ea7n l\u00e0 l\u1ec7nh c\u1eadp nh\u1eadt, m\u00e0 c\u00f2n l\u00e0 c\u00f4ng c\u1ee5 gi\u00fap b\u1ea1n duy tr\u00ec s\u1ef1 \u1ed5n \u0111\u1ecbnh, b\u1ea3o m\u1eadt v\u00e0 hi\u1ec7u n\u0103ng t\u1ed1i \u01b0u cho d\u1ef1 \u00e1n Node.js. Khi n\u1eafm v\u1eefng c\u00e1ch s\u1eed d\u1ee5ng, b\u1ea1n c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng qu\u1ea3n l\u00fd c\u00e1c phi\u00ean b\u1ea3n g\u00f3i, ph\u00e1t hi\u1ec7n l\u1ed7i k\u1ecbp th\u1eddi v\u00e0 \u0111\u1ea3m b\u1ea3o m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n lu\u00f4n \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>npm update package l\u00e0 thao t\u00e1c c\u01a1 b\u1ea3n nh\u01b0ng v\u00f4 c\u00f9ng quan tr\u1ecdng trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n d\u1ef1 \u00e1n Node.js. Vi\u1ec7c c\u1eadp nh\u1eadt c\u00e1c package kh\u00f4ng ch\u1ec9 gi\u00fap b\u1ea1n t\u1eadn d\u1ee5ng c\u00e1c t\u00ednh n\u0103ng m\u1edbi m\u00e0 c\u00f2n v\u00e1 l\u1ed7i v\u00e0 c\u1ea3i thi\u1ec7n hi\u1ec7u n\u0103ng \u1ee9ng d\u1ee5ng. \u0110\u1ecdc b\u00e0i vi\u1ebft sau \u0111\u1ec3 \u0111\u01b0\u1ee3c gi\u1ea3i \u0111\u00e1p [&hellip;]<\/p>\n","protected":false},"author":95,"featured_media":93937,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109,10344],"tags":[],"class_list":["post-93935","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it","category-javascript"],"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 update package: H\u01b0\u1edbng d\u1eabn c\u1eadp nh\u1eadt g\u00f3i trong NodeJS - ITviec Blog<\/title>\n<meta name=\"description\" content=\"Chi ti\u1ebft c\u00e1ch d\u00f9ng l\u1ec7nh npm update package \u0111\u1ec3 c\u1eadp nh\u1eadt c\u00e1c g\u00f3i npm l\u00ean phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t, \u0111\u1ea3m b\u1ea3o d\u1ef1 \u00e1n lu\u00f4n \u1ed5n \u0111\u1ecbnh v\u00e0 b\u1ea3o m\u1eadt.\" \/>\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-update-package\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NPM update package: H\u01b0\u1edbng d\u1eabn c\u1eadp nh\u1eadt g\u00f3i trong NodeJS\" \/>\n<meta property=\"og:description\" content=\"npm update package l\u00e0 thao t\u00e1c c\u01a1 b\u1ea3n nh\u01b0ng v\u00f4 c\u00f9ng quan tr\u1ecdng trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n d\u1ef1 \u00e1n Node.js. Vi\u1ec7c c\u1eadp nh\u1eadt c\u00e1c package kh\u00f4ng ch\u1ec9 gi\u00fap b\u1ea1n t\u1eadn\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/huong-dan-npm-update-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-30T09:11:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-30T09:11:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-update-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=\"14 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"NPM update package: H\u01b0\u1edbng d\u1eabn c\u1eadp nh\u1eadt g\u00f3i trong NodeJS - ITviec Blog","description":"Chi ti\u1ebft c\u00e1ch d\u00f9ng l\u1ec7nh npm update package \u0111\u1ec3 c\u1eadp nh\u1eadt c\u00e1c g\u00f3i npm l\u00ean phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t, \u0111\u1ea3m b\u1ea3o d\u1ef1 \u00e1n lu\u00f4n \u1ed5n \u0111\u1ecbnh v\u00e0 b\u1ea3o m\u1eadt.","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-update-package\/","og_locale":"vi_VN","og_type":"article","og_title":"NPM update package: H\u01b0\u1edbng d\u1eabn c\u1eadp nh\u1eadt g\u00f3i trong NodeJS","og_description":"npm update package l\u00e0 thao t\u00e1c c\u01a1 b\u1ea3n nh\u01b0ng v\u00f4 c\u00f9ng quan tr\u1ecdng trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n d\u1ef1 \u00e1n Node.js. Vi\u1ec7c c\u1eadp nh\u1eadt c\u00e1c package kh\u00f4ng ch\u1ec9 gi\u00fap b\u1ea1n t\u1eadn","og_url":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2025-12-30T09:11:41+00:00","article_modified_time":"2025-12-30T09:11:43+00:00","og_image":[{"width":800,"height":421,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-update-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":"14 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/"},"author":{"name":"Tuong Uyen","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/e97d0e359f8840eaea7dc3a96006a8d4"},"headline":"NPM update package: H\u01b0\u1edbng d\u1eabn c\u1eadp nh\u1eadt g\u00f3i trong NodeJS","datePublished":"2025-12-30T09:11:41+00:00","dateModified":"2025-12-30T09:11:43+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/"},"wordCount":3820,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-update-package-scaled.png","articleSection":["Chuy\u00ean m\u00f4n IT","JavaScript"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/","url":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/","name":"NPM update package: H\u01b0\u1edbng d\u1eabn c\u1eadp nh\u1eadt g\u00f3i trong NodeJS - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-update-package-scaled.png","datePublished":"2025-12-30T09:11:41+00:00","dateModified":"2025-12-30T09:11:43+00:00","description":"Chi ti\u1ebft c\u00e1ch d\u00f9ng l\u1ec7nh npm update package \u0111\u1ec3 c\u1eadp nh\u1eadt c\u00e1c g\u00f3i npm l\u00ean phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t, \u0111\u1ea3m b\u1ea3o d\u1ef1 \u00e1n lu\u00f4n \u1ed5n \u0111\u1ecbnh v\u00e0 b\u1ea3o m\u1eadt.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-package\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-update-package-scaled.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/12\/npm-update-package-scaled.png","width":800,"height":421,"caption":"npm update package - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/huong-dan-npm-update-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 update package: H\u01b0\u1edbng d\u1eabn c\u1eadp nh\u1eadt g\u00f3i trong 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\/93935","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=93935"}],"version-history":[{"count":2,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93935\/revisions"}],"predecessor-version":[{"id":93938,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93935\/revisions\/93938"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/93937"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=93935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=93935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=93935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}