npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ubuligan/locknpm

v0.1.0

Published

List and install pre-packed .tgz npm archives offline, from a bundled vendor directory or any folder on your machine.

Readme

locknpm

Offline mühitlərdə əvvəlcədən yığılmış .tgz npm arxivlərini siyahılamaq və layihənizə quraşdırmaq üçün CLI.

Problemi belədir: bəzi paketlər yalnız VPN arxasından əlçatandır, bəziləri isə registry-dən ümumiyyətlə gəlmir. Onları əl ilə daşımaq əziyyətlidir. locknpm bu işi bir qovluğa fayl atmaq qədər sadələşdirir.

$ locknpm ls

vendor-npm/ (1 paket)
/usr/local/lib/node_modules/@scope/locknpm/vendor-npm

  PAKET                  VERSIYA   ÖLÇÜ
  escape-string-regexp   5.0.0     1.9 KB

$ locknpm install escape-string-regexp

→ Mənbə: /usr/local/lib/node_modules/@scope/locknpm/vendor-npm
→ Seçildi: [email protected]
→ İcra olunur: npm install "…/escape-string-regexp-5.0.0.tgz"

✓ [email protected] layihəyə əlavə olundu.
  Mövcud asılılıqlara toxunulmadı.

Quraşdırma

npm install -g @<scope>/locknpm

Komandalar

locknpm ls [--dir <yol>] [--json] [--no-color]
locknpm install <name>[@<version>] [--dir <yol>] [--no-color]
locknpm --help | --version

| Flag | İzah | | ------------- | ------------------------------------------------------------------------------------------------------------------------- | | --dir <yol> | Mənbə qovluğunu dəyişir. Verilmədikdə paketlə gələn vendor-npm/ işlədilir. Yalnız həmin çağırış üçün — yadda saxlanmır. | | --json | Maşın-oxunaqlı çıxış (yalnız ls). stdout təmiz JSON qalır, diaqnostika stderr-ə gedir. | | --no-color | ANSI rənglərini söndürür. NO_COLORFORCE_COLOR da nəzərə alınır. |

Öz paketlərinizi əlavə etmək

Arxiv yaradın və qovluğa atın — başqa addım yoxdur:

npm pack <paket-adı> --pack-destination ./mypkgs
locknpm ls --dir ./mypkgs
locknpm install <paket-adı> --dir ./mypkgs

Alətlə birlikdə paylanan paketlər üçün eyni faylı vendor-npm/ qovluğuna qoyun.

Exit kodları

| Kod | Mənası | | ----- | -------------------------------------------------------------------- | | 0 | Uğur (boş vendor qovluğu da daxil — bu xəta deyil) | | 1 | Paket/versiya/qovluq tapılmadı, cari qovluq layihə deyil, npm yoxdur | | 2 | Səhv arqument və ya naməlum komanda | | digər | npm-in öz exit kodu, olduğu kimi ötürülür |

Zəmanətlər

  • Siyahılama şəbəkəyə çıxmır. ls tam offline işləyir.
  • Mövcud asılılıqlarınıza toxunulmur. Alət heç nə silmir, əvəz etmir, node_modules və ya package-lock.json təmizləmir. npm ci, npm prune, npm dedupe, npm uninstall heç vaxt çağırılmır — bunu tests/constitution.test.ts avtomatik yoxlayır.
  • Sıfır runtime dependency. Yalnız Node built-in modulları və sistemdəki npm.
  • Konfiqurasiya faylı yoxdur. Alət heç yerə vəziyyət yazmır.

Bilinməli davranış: file: asılılıqları

Quraşdırma npm install <tgz> üzərindən aparıldığı üçün npm həmin paketi package.json-a arxivin yoluna işarə edən file: asılılığı kimi yazır:

"dependencies": {
  "escape-string-regexp": "file:../../path/to/vendor-npm/escape-string-regexp-5.0.0.tgz"
}

Bu, npm-in öz davranışıdır. Nəticəsi: həmin layihəni başqa maşında npm ci ilə qurmaq üçün arxiv eyni yolda olmalıdır. Komanda daxilində paylaşılan layihələrdə arxivi əvvəlcə repo içinə köçürüb --dir ilə oradan quraşdırmaq daha etibarlıdır.

Mühit dəyişənləri

| Dəyişən | Təsir | | --------------------- | -------------------------------------------- | | NO_COLOR | Rəng söndürülür (dəyərindən asılı olmayaraq) | | FORCE_COLOR=0 | Rəng söndürülür | | FORCE_COLOR=<digər> | Rəng yandırılır, TTY olmasa belə | | TERM=dumb | Rəng söndürülür | | LOCKNPM_DEBUG=1 | Xətalarda stack trace göstərilir |

İnkişaf

npm install
npm run lint
npm run build
npm test

Hər üçü commit-dən əvvəl yaşıl olmalıdır.

Layihənin qaydaları — prinsiplər, əhatə, qeyri-məqsədlər, təhlükəsizlik tələbləri — .specify/memory/constitution.md faylındadır. Kod bu sənədə tabedir.

Dərcdən əvvəl

npm pack --dry-run

Tarball-da yalnız dist/, vendor-npm/*.tgz, package.json, README.mdLICENSE görünməlidir. vendor-npm/ içindəki hər şey dərc olunan bağlamaya düşür — daxili paketlər üçün paket scopedaccess: restricted olmalıdır.

Lisenziya

MIT