پالت فرمان

دنبال فرمانی برای اجرا بگردید…

ZarynZaryn
بسته‌ها·۲ دقیقه مطالعه

بسته‌های npm (جاوااسکریپت، تایپ‌اسکریپت)

یک بستهٔ جاوااسکریپت یا تایپ‌اسکریپت را با npm در زرین منتشر کنید، با npm، pnpm یا yarn نصبش کنید و خصوصی نگهش دارید. هر قدم توضیح داده شده.

> فقط می‌خواهید نصب npm سریع‌تر شود یا وقتی npmjs.com در دسترس نیست کار کند؟ [آینهٔ npm](/docs/fa/package-mirrors#جاوااسکریپت-npm) را ببینید. **npm** بسته‌های جاوااسکریپت را نصب می‌کند. می‌تواند یک *scope* (بخش `@name/` در نام بسته) را به رجیستری دیگری جز بقیه بفرستد، و زرین از همین راه وارد می‌شود: بسته‌های `@you/...` شما از زرین می‌آیند و بقیه همچنان از npmjs.com. ## زرین را به npm معرفی کنید (یک بار برای هر پروژه، یا یک بار برای هر رایانه) در [بسته‌ها](/packages) توکن بسازید (**ساخت توکن انتشار**). سپس این دو خط را در فایلی به نام `.npmrc` بگذارید؛ یا در پوشهٔ پروژه، یا در پوشهٔ خانه‌تان (`~/.npmrc`) برای همهٔ پروژه‌ها: ```ini @your-username:registry=https://api.zaryn.xyz/v1/packages/npm/ //api.zaryn.xyz/v1/packages/npm/:_authToken=YOUR_TOKEN ``` - خط اول: بسته‌هایی که نامشان با `@your-username/` شروع می‌شود در زرین‌اند. - خط دوم: توکنی که npm به زرین می‌فرستد. فایلی با توکن واقعی را در مخزن عمومی commit نکنید؛ اگر بنویسید `_authToken=${NPM_TOKEN}`، npm آن را از متغیر محیطی می‌خواند. نام کاربری زرین خودتان، یا نام سازمانی که مالک یا مدیرش هستید، را به‌عنوان scope بگذارید. ## انتشار در `package.json` نامی با scope و یک نسخه بدهید: ```json { "name": "@your-username/hello", "version": "0.1.0", "main": "index.js" } ``` ```bash npm publish --access public ``` بدون `--access public`، npm بستهٔ **خصوصی** می‌خواهد (قاعدهٔ npm برای نام‌های scopeدار) که پریمیوم لازم دارد. برای انتشار اصلاحیه `version` را بالا ببرید و دوباره منتشر کنید؛ نسخهٔ منتشرشده جایگزین نمی‌شود. ## نصب با آن دو خط `.npmrc`، مثل هر بستهٔ دیگری نصبش کنید: ```bash npm install @your-username/hello pnpm add @your-username/hello yarn add @your-username/hello ``` ## نصب مستقیم از یک مخزن زرین هر commit مخزنی که `package.json` دارد بدون انتشار نصب می‌شود: زبانهٔ **نصب** مخزن (کنار دستورهای clone) خطش را می‌دهد: ```bash npm install https://zaryn.xyz/api/v1/repos/<owner>/<repo>/branches/main/archive/<commit>.tar.gz ``` همان commit دقیق را ثابت می‌کند، در `package.json` هم. ## بسته‌های خصوصی (پریمیوم) `npm publish` بدون `--access public` بستهٔ خصوصی می‌سازد؛ بستهٔ موجود را هم می‌شود در صفحه‌اش عوض کرد (**خصوصی کردن**). فقط شما، یا اعضای سازمانی که مالکش است، می‌توانند ببینند یا نصبش کنند؛ با همان توکن `.npmrc`. ## وقتی چیزی درست کار نمی‌کند | npm می‌گوید | یعنی | راه‌حل | |---|---|---| | `E401` | توکن نیست، یا اشتباه است | خط `_authToken` را در `.npmrc` بررسی کنید | | `E403` "you can only publish under your own @username…" | scope مال شما نیست | نام کاربری خودتان یا نام سازمانتان را بگذارید | | `E402` "Private packages are a Premium feature" | انتشار scopeدار بدون `--access public` | `--access public` را اضافه کنید، یا ارتقا دهید | | `E404` هنگام نصب بستهٔ بی‌scope | npm بسته‌ای را که در npmjs.com است از زرین خواسته | فقط scope خودتان را به زرین بفرستید، مثل بالا | | `E409` "already published" | نسخه‌ها جایگزین نمی‌شوند | `version` را بالا ببرید | ## پشت صحنه زرین به پروتکل رجیستری npm حرف می‌زند: سندی که npm می‌خواند (نسخه‌ها، dist-tagها، وابستگی‌ها) و فایل‌های `.tgz`، هر کدام با مقدار یکپارچگی `sha512` که npm در هر نصب می‌سنجد.