{"id":1589,"date":"2022-01-20T16:50:38","date_gmt":"2022-01-20T15:50:38","guid":{"rendered":"https:\/\/nguenkam.com\/blog\/?p=1589"},"modified":"2023-12-05T14:07:00","modified_gmt":"2023-12-05T13:07:00","slug":"npm-check-updates-ncu-command","status":"publish","type":"post","link":"https:\/\/nguenkam.com\/blog\/index.php\/2022\/01\/20\/npm-check-updates-ncu-command\/","title":{"rendered":"npm-check-updates (ncu) : How to update angular package version with ease"},"content":{"rendered":"\n<p><strong><em>npm-check-updates<\/em> <\/strong>upgrades our package.json dependencies to the&nbsp;<em>latest<\/em>&nbsp;versions, ignoring specified versions.<\/p>\n\n\n\n<ul><li>It maintains existing semantic versioning&nbsp;<em>policies<\/em>, i.e.&nbsp;<code>\"express\": \"^4.0.0\"<\/code>&nbsp;to&nbsp;<code>\"express\": \"^5.0.0\"<\/code>.<\/li><li>It <em>only<\/em>&nbsp;modifies package.json file. We then need to Run<em><strong>&nbsp;<code>npm install<\/code>&nbsp;<\/strong><\/em>to update our installed packages and package-lock.json.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" src=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-18.png\" alt=\"\" class=\"wp-image-1590\" width=\"425\" height=\"228\" srcset=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-18.png 720w, https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-18-300x161.png 300w\" sizes=\"(max-width: 425px) 100vw, 425px\" \/><\/figure><\/div>\n\n\n\n<ol><li>Red = major upgrade <\/li><li>Cyan = minor upgrade<\/li><li>Green = patch upgrade<\/li><\/ol>\n\n\n\n<h4>Installation<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>#Install globally\nnpm install -g npm-check-updates<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4>Usage<\/h4>\n\n\n\n<ul><li><span class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>Check the latest versions of all project dependencies<\/strong><\/span><span class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>:<\/strong><\/span><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" src=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-19.png\" alt=\"\" class=\"wp-image-1591\" width=\"441\" height=\"232\" srcset=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-19.png 576w, https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-19-300x158.png 300w\" sizes=\"(max-width: 441px) 100vw, 441px\" \/><\/figure><\/div>\n\n\n\n<ul><li><span class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>Upgrade a project&#8217;s package file<\/strong><\/span>:<\/li><\/ul>\n\n\n\n<p class=\"has-text-align-left\"><span class=\"has-inline-color has-vivid-red-color\"><strong><em>ps: <\/em><\/strong><\/span><em> First, make sure your package file is in version control and all changes have been committed. This&nbsp;will&nbsp;overwrite your package file.<\/em><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" src=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-20.png\" alt=\"\" class=\"wp-image-1592\" width=\"533\" height=\"199\" srcset=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-20.png 710w, https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-20-300x112.png 300w\" sizes=\"(max-width: 533px) 100vw, 533px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<ul><li><span class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>Check global packages:<\/strong><\/span><\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ncu -g<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4>npm vs. ncu<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"662\" height=\"424\" src=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-21.png\" alt=\"\" class=\"wp-image-1594\" srcset=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-21.png 662w, https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2022\/01\/image-21-300x192.png 300w\" sizes=\"(max-width: 662px) 100vw, 662px\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4>Interactive Mode<\/h4>\n\n\n\n<p>Choose which packages to update in interactive mode:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ncu --interactive\n\/\/Or\nncu -i<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" src=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2023\/12\/image.png\" alt=\"\" class=\"wp-image-3037\" width=\"503\" height=\"256\" srcset=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2023\/12\/image.png 723w, https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2023\/12\/image-300x153.png 300w\" sizes=\"(max-width: 503px) 100vw, 503px\" \/><\/figure><\/div>\n\n\n\n<p>Combine with&nbsp;<em><strong><code>--format group<\/code>&nbsp;<\/strong><\/em>for a truly&nbsp;<em>luxe<\/em>&nbsp;experience:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" src=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2023\/12\/image-1.png\" alt=\"\" class=\"wp-image-3038\" width=\"441\" height=\"381\" srcset=\"https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2023\/12\/image-1.png 723w, https:\/\/nguenkam.com\/blog\/wp-content\/uploads\/2023\/12\/image-1-300x259.png 300w\" sizes=\"(max-width: 441px) 100vw, 441px\" \/><\/figure><\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4>Filter packages<\/h4>\n\n\n\n<p>Filter packages using the&nbsp;<code>--filter<\/code>&nbsp;option or adding additional cli arguments. We can exclude specific packages with the&nbsp;<code>--reject<\/code>&nbsp;option or prefixing a filter with&nbsp;<code>!<\/code>. Supports strings, wildcards, globs, comma-or-space-delimited lists, and regular expressions:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># upgrade only mocha\nncu mocha\nncu -f mocha\nncu --filter mocha\n\n# upgrade packages that start with \"react-\"\nncu react-*\nncu \"\/^react-.*$\/\"\n\n# upgrade everything except nodemon\nncu \\!nodemon\nncu -x nodemon\nncu --reject nodemon\n\n# upgrade only chalk, mocha, and react\nncu chalk mocha react\nncu chalk, mocha, react\nncu -f \"chalk mocha react\"\n\n# upgrade packages that do not start with \"react-\".\nncu \\!react-*\nncu '\/^(?!react-).*$\/' # mac\/linux\nncu \"\/^(?!react-).*$\/\" # windows<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong><span class=\"has-inline-color has-vivid-red-color\">PS:<\/span><\/strong>  <code><em><strong>npm-check-update<\/strong><\/em>s<\/code>\u00a0has a flag\u00a0<code><strong>-x<\/strong>, <strong>--reject<\/strong><\/code>\u00a0<em>to ignore certain packages when checking for updates. (<strong>dependencies that shouldn&#8217;t be updated<\/strong>)<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ncu -u -x mobx,query-string  \n\/\/Will update all outdated dependencies except mobx and query-string <\/code><\/pre>\n\n\n\n<p>we can also use&nbsp;a config File&nbsp;<code><em><strong>.ncurc.json<\/strong><\/em><\/code>&nbsp;file in the project&#8217;s root directory (next to package.json, where &#8216;ncu&#8217; is being run), like so:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"upgrade\": true,\n  \"reject\": &#91;\n    \"mobx\",\n    \"query-string\"\n  ]\n}<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4>Bugs Fixen<\/h4>\n\n\n\n<p>If you have the following issue ( see red message) by installing the package with the new version :  <em><span class=\"has-inline-color has-vivid-red-color\">&#8220;Could not resolve dependency: npm ERR! &#8230;. &#8220;<\/span><\/em><\/p>\n\n\n\n<p>that is how, you can fix it : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install --legacy-peer-deps<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>npm-check-updates upgrades our package.json dependencies to the&nbsp;latest&nbsp;versions, ignoring specified versions. It maintains existing semantic versioning&nbsp;policies, i.e.&nbsp;&#8220;express&#8221;: &#8220;^4.0.0&#8221;&nbsp;to&nbsp;&#8220;express&#8221;: &#8220;^5.0.0&#8221;. It only&nbsp;modifies package.json file. We then need to Run&nbsp;npm install&nbsp;to update our installed packages and package-lock.json. Red = major upgrade Cyan = minor upgrade Green = patch upgrade Installation Usage Check the latest versions of all project [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[453],"tags":[307,454,197],"_links":{"self":[{"href":"https:\/\/nguenkam.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1589"}],"collection":[{"href":"https:\/\/nguenkam.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nguenkam.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nguenkam.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nguenkam.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=1589"}],"version-history":[{"count":6,"href":"https:\/\/nguenkam.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1589\/revisions"}],"predecessor-version":[{"id":3041,"href":"https:\/\/nguenkam.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1589\/revisions\/3041"}],"wp:attachment":[{"href":"https:\/\/nguenkam.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=1589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nguenkam.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=1589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nguenkam.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=1589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}