{"id":22335,"date":"2018-07-25T12:15:56","date_gmt":"2018-07-25T09:15:56","guid":{"rendered":"https:\/\/www.webcodegeeks.com\/?p=22335"},"modified":"2018-07-24T10:57:35","modified_gmt":"2018-07-24T07:57:35","slug":"npm-can","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/","title":{"rendered":"NPM Can Do That?"},"content":{"rendered":"<p>I have been using the NPM package manager for a few years and watched it rise, almost fall (to Yarn) and evolve into a fast, full-featured package manager and much more. Along the way there are a few simple tricks that have saved me a bunch of cumulative time.<\/p>\n<h2>Viewing Available NPM Scripts<\/h2>\n<p>Picture this\u2026 you finally find some time to work on that little app or side project. It\u2019s been days or weeks since you last looked at the code. You open up Visual Studio Code, hit CTRL-` to open the integrated terminal and type <em>npm\u2026<\/em>? Darn, you can\u2019t remember the command to build\/run\/debug\/do something to your app. Time to crack open the package.json and see how it all works. Buzz kill.\u00a0Wait, what about\u2026<\/p>\n<pre class=\"brush:php\">npm run<\/pre>\n<p>This command outputs a nicely formatted list of npm scripts that are available:<\/p>\n<pre class=\"brush:php\">$ npm run\r\nLifecycle scripts included in personal-finance-app:\r\n  start\r\n    ng serve\r\n  test\r\n    ng test\r\n\r\navailable via `npm run-script`:\r\n  ng\r\n    ng\r\n  start:prod\r\n    ng serve --prod\r\n  build\r\n    ng build --prod\r\n  lint\r\n    ng lint\r\n  e2e\r\n    ng e2e<\/pre>\n<h2>Check for Outdated NPM Packages<\/h2>\n<p>Let\u2019s continue with the theme of opening up a side project that you haven\u2019t worked on for a while. We all know that NPM packages and JavaScript in general are evolving at light-speed. Here\u2019s a quick way of checking out how current your NPM packages are:<\/p>\n<pre class=\" brush:php\">npm outdated<\/pre>\n<p>By default, this command presents the top-level NPM dependencies in your package.json (i.e. depth=0) in a nicely formatted table with information about the version you are currently using and the latest available version.<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_outdated.png\"><img decoding=\"async\" class=\"aligncenter wp-image-22337 size-full\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_outdated.png\" alt=\"npm\" width=\"645\" height=\"190\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_outdated.png 645w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_outdated-300x88.png 300w\" sizes=\"(max-width: 645px) 100vw, 645px\" \/><\/a><\/p>\n<p><strong>Bonus tip:<\/strong> Add the -long option to see the package type:<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_outdated_long.png\"><img decoding=\"async\" class=\"aligncenter wp-image-22338 size-full\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_outdated_long.png\" alt=\"npm\" width=\"676\" height=\"171\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_outdated_long.png 676w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_outdated_long-300x76.png 300w\" sizes=\"(max-width: 676px) 100vw, 676px\" \/><\/a><\/p>\n<h2>View All Available Versions of a Package<\/h2>\n<p>It has only been 3 hours since I upgraded my project\u2019s dependencies but thanks to <em>npm outdated<\/em> I can now see that most of my packages are already out of date. Hmm\u2026 how many versions of @angular\/cli have been released since I stepped away for coffee?<\/p>\n<p>But seriously, occasionally I need or want to see the released versions of a particular package available in\u00a0the NPM public registry. Luckily I don\u2019t need to open a browser and navigate to the NPM registry website.<\/p>\n<pre class=\" brush:php\">npm view @angular\/cli versions<\/pre>\n<p>This command outputs a list of all the available versions of the package:<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_view.png\"><img decoding=\"async\" class=\"aligncenter wp-image-22339 size-full\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_view.png\" alt=\"npm\" width=\"624\" height=\"157\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_view.png 624w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_view-300x75.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_view-620x157.png 620w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p><strong>Bonus Tip:\u00a0<\/strong>If you have\u00a0<em>grep<\/em>, you can use it to quickly filter out specific versions:<\/p>\n<pre class=\" brush:php\">npm view @angular\/cli versions | grep \"'6.\"<\/pre>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_view_grep.png\"><img decoding=\"async\" class=\"aligncenter wp-image-22340 size-full\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_view_grep.png\" alt=\"npm\" width=\"623\" height=\"125\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_view_grep.png 623w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_view_grep-300x60.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2018\/07\/npm_view_grep-620x125.png 620w\" sizes=\"(max-width: 623px) 100vw, 623px\" \/><\/a><\/p>\n<h2>Viewing an NPM Package\u2019s Code Repository<\/h2>\n<p>If I am working with an NPM package and I get stuck and need to look up documentation on how to use it, I would normally open a browser and search for the package. In most cases,\u00a0 I would land on the README file in the top-level directory of the package\u2019s code repository. What if there was a quick way to launch a package\u2019s source code repository in the browser from the command-line? Oh wait, there is:<\/p>\n<pre class=\" brush:php\">npm repo rxjs<\/pre>\n<p>This command will launch the launch the repository URL in your default browser (ex. <a href=\"https:\/\/github.com\/reactivex\/rxjs\" rel=\"nofollow\">https:\/\/github.com\/reactivex\/rxjs<\/a>). Most packages published to NPM provide a repository URL in their package.json file.<\/p>\n<h2>Don\u2019t Assume NPM Packages are Installed Globally<\/h2>\n<p>The ability to quickly write short scripts in package.json to perform frequently used tasks from the command-line is fantastic. You should try not to assume that packages are installed globally when writing your scripts but you also certainly don\u2019t want to have to write long-form scripts like the one below to reference locally installed package binaries:<\/p>\n<pre class=\"brush:php\">\"scripts\": {\r\n  \"start\": \"npm run build &amp;&amp; node_modules\/.bin\/nodemon server.js\"\r\n}<\/pre>\n<p>Luckily, NPM adds the\u00a0<em>node_modules\/.bin\/ <\/em>folder\u00a0to the path by default which means you can reference package binaries as if they are installed globally like this:<\/p>\n<pre class=\"brush:php\">\"scripts\": {\r\n   \"start\": \"npm run build &amp;&amp; nodemon server.js\"\r\n}<\/pre>\n<p>Install\u00a0nodemon as a devDependency, reference the\u00a0nodemon\u00a0binary in your script, run the script and away you go. This script will work for the next developer right out of the box (or clone?) without needing to globally install nodemon.<\/p>\n<p>\u2014<\/p>\n<p>Those are just a few tips to consider when using NPM. There are plenty of other clever tricks that can help speed up your development process. This is especially true when you are using NPM within a tool like Visual Studio Code or via Node Version Manager (NVM).<\/p>\n<p>What lesser-known NPM tricks do you use on a regular basis?<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>Published on Web Code Geeks with permission by Brian De Sousa, partner at our <a href=\"\/\/www.webcodegeeks.com\/join-us\/wcg\/\" target=\"_blank\" rel=\"noopener\">WCG program<\/a>. See the original article here: <a href=\"https:\/\/briandesousa1.wordpress.com\/2018\/07\/23\/npm-can-do-that\/\" target=\"_blank\" rel=\"noopener\">NPM Can Do That?<\/a><\/p>\n<p>Opinions expressed by Web Code Geeks contributors are their own.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I have been using the NPM package manager for a few years and watched it rise, almost fall (to Yarn) and evolve into a fast, full-featured package manager and much more. Along the way there are a few simple tricks that have saved me a bunch of cumulative time. Viewing Available NPM Scripts Picture this\u2026 &hellip;<\/p>\n","protected":false},"author":141,"featured_media":924,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-22335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-node-js"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>NPM Can Do That? - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Interested to learn more about npm? Check out our article where we see a few simple tricks to save you a bunch of cumulative time.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NPM Can Do That? - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Interested to learn more about npm? Check out our article where we see a few simple tricks to save you a bunch of cumulative time.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-25T09:15:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/nodejs-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Brian De Sousa\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@briandesousa1\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brian De Sousa\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/\"},\"author\":{\"name\":\"Brian De Sousa\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/b3add10a27821f3334ef6ea4517afa38\"},\"headline\":\"NPM Can Do That?\",\"datePublished\":\"2018-07-25T09:15:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/\"},\"wordCount\":717,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/nodejs-logo.jpg\",\"articleSection\":[\"Node.js\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/\",\"name\":\"NPM Can Do That? - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/nodejs-logo.jpg\",\"datePublished\":\"2018-07-25T09:15:56+00:00\",\"description\":\"Interested to learn more about npm? Check out our article where we see a few simple tricks to save you a bunch of cumulative time.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/nodejs-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/nodejs-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Node.js\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/node-js\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"NPM Can Do That?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/b3add10a27821f3334ef6ea4517afa38\",\"name\":\"Brian De Sousa\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6d9ee737fde3578595268395d83bed5675158601972fb206794255c46798404?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6d9ee737fde3578595268395d83bed5675158601972fb206794255c46798404?s=96&d=mm&r=g\",\"caption\":\"Brian De Sousa\"},\"description\":\"Brian De Sousa is a senior software developer working in the financial industry. He has over 10 years of experience developing web applications with a variety of web technologies. He has a passion for developing solutions using the latest and greatest technologies and frameworks.\",\"sameAs\":[\"https:\/\/briandesousa1.wordpress.com\/\",\"https:\/\/www.linkedin.com\/in\/briandesousa?trk=hp-identity-name\",\"https:\/\/x.com\/briandesousa1\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/brian-de-sousa\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"NPM Can Do That? - Web Code Geeks - 2026","description":"Interested to learn more about npm? Check out our article where we see a few simple tricks to save you a bunch of cumulative time.","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:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/","og_locale":"en_US","og_type":"article","og_title":"NPM Can Do That? - Web Code Geeks - 2026","og_description":"Interested to learn more about npm? Check out our article where we see a few simple tricks to save you a bunch of cumulative time.","og_url":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2018-07-25T09:15:56+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/nodejs-logo.jpg","type":"image\/jpeg"}],"author":"Brian De Sousa","twitter_card":"summary_large_image","twitter_creator":"@briandesousa1","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Brian De Sousa","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/"},"author":{"name":"Brian De Sousa","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/b3add10a27821f3334ef6ea4517afa38"},"headline":"NPM Can Do That?","datePublished":"2018-07-25T09:15:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/"},"wordCount":717,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/nodejs-logo.jpg","articleSection":["Node.js"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/","url":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/","name":"NPM Can Do That? - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/nodejs-logo.jpg","datePublished":"2018-07-25T09:15:56+00:00","description":"Interested to learn more about npm? Check out our article where we see a few simple tricks to save you a bunch of cumulative time.","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/nodejs-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/nodejs-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/javascript\/node-js\/npm-can\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"JavaScript","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/"},{"@type":"ListItem","position":3,"name":"Node.js","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/node-js\/"},{"@type":"ListItem","position":4,"name":"NPM Can Do That?"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/b3add10a27821f3334ef6ea4517afa38","name":"Brian De Sousa","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e6d9ee737fde3578595268395d83bed5675158601972fb206794255c46798404?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6d9ee737fde3578595268395d83bed5675158601972fb206794255c46798404?s=96&d=mm&r=g","caption":"Brian De Sousa"},"description":"Brian De Sousa is a senior software developer working in the financial industry. He has over 10 years of experience developing web applications with a variety of web technologies. He has a passion for developing solutions using the latest and greatest technologies and frameworks.","sameAs":["https:\/\/briandesousa1.wordpress.com\/","https:\/\/www.linkedin.com\/in\/briandesousa?trk=hp-identity-name","https:\/\/x.com\/briandesousa1"],"url":"https:\/\/www.webcodegeeks.com\/author\/brian-de-sousa\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/22335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/141"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=22335"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/22335\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/924"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=22335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=22335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=22335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}