๐Ÿ“ฆ NPM Package Search

Quickly query npm package info, version history, dependencies, downloads, and license

Zero Dependencies ยท Works Offline

๐Ÿ” Search NPM Packages

NPM Package Search - Quick Package Info, Versions, Dependencies, Downloads

The NPM Package Search tool is a free online tool that helps developers quickly query detailed npm package information. Search and compare npm packages directly in your browser without installing anything, viewing version history, dependency relationships, download trends, and license info.

Core Features

How to Choose the Right NPM Package?

Consider: 1) Downloads and community activity; 2) Maintenance frequency and recent updates; 3) Dependency count (fewer is better, reduces supply chain risk); 4) License compatibility (MIT is most permissive, GPL requires caution); 5) Bundle size impact on page performance; 6) TypeScript type support.

Frequently Asked Questions

How to choose the right NPM package?โ–ผ
Consider: 1) Weekly downloads and GitHub Stars; 2) Recent update time; 3) Number of dependencies; 4) License compatibility; 5) Bundle size; 6) TypeScript support; 7) Documentation quality.
What are common NPM license types?โ–ผ
Common licenses: MIT (most permissive, commercial use), Apache-2.0 (with patent grant), ISC (minimal MIT), GPL (copyleft, derivatives must be open source). Commercial projects should avoid GPL packages.
How to determine if an NPM package is safe?โ–ผ
Check: 1) Maintainer count and reputation; 2) npm audit reports; 3) Known vulnerabilities in dependency tree; 4) Package publish frequency; 5) GitHub Issues response time.
Is search data uploaded?โ–ผ
Search requests are sent to npmjs.com's public API to fetch package info. This tool does not collect or store your search history.
`}).join(''); }catch(e){results.innerHTML='

Search failed: '+e.message+'

'} } async function showDetail(name){ const detail=document.getElementById('pkg-detail');detail.style.display='block';detail.innerHTML='
โณ Loading...
'; try{const res=await fetch(`https://registry.npmjs.org/${encodeURIComponent(name)}`);const data=await res.json(); const latest=data['dist-tags']&&data['dist-tags'].latest;const v=data.versions&&data.versions[latest]; const time=data.time;const modified=time&&time[latest]?new Date(time[latest]).toLocaleDateString():'N/A'; const created=time&&time.created?new Date(time.created).toLocaleDateString():'N/A'; const deps=v&&v.dependencies?Object.keys(v.dependencies):[];const devDeps=v&&v.devDependencies?Object.keys(v.devDependencies):[]; const keywords=data.keywords||[]; detail.innerHTML=`

${data.name}

${data.description||'No description'}

๐Ÿ“ฆ Latest: ${latest||'N/A'}๐Ÿ“… Published: ${modified}๐Ÿ“… Created: ${created}${data.license?'โš–๏ธ '+data.license+'':''}

Install Commands

npm install ${data.name}
yarn add ${data.name}
pnpm add ${data.name}
${deps.length?`

Dependencies (${deps.length})

${deps.map(d=>`${d}`).join('')}
`:''}${devDeps.length?`

Dev Dependencies (${devDeps.length})

${devDeps.slice(0,20).map(d=>`${d}`).join('')}${devDeps.length>20?'+'+(devDeps.length-20)+' more':''}
`:''}${keywords.length?`

Keywords

${keywords.map(k=>`${k}`).join('')}
`:''}`; }catch(e){detail.innerHTML='

Load failed: '+e.message+'

'} } function copyText(t){navigator.clipboard.writeText(t).then(()=>showToast())} function showToast(){const t=document.getElementById('copy-toast');t.classList.add('show');setTimeout(()=>t.classList.remove('show'),1500)} function toggleFaq(el){el.classList.toggle('open')}