بستههای npm (جاوااسکریپت، تایپاسکریپت)
یک بستهٔ جاوااسکریپت یا تایپاسکریپت را با npm در زرین منتشر کنید، با npm، pnpm یا yarn نصبش کنید و خصوصی نگهش دارید. هر قدم توضیح داده شده.
دنبال فرمانی برای اجرا بگردید…
یک بستهٔ جاوااسکریپت یا تایپاسکریپت را با npm در زرین منتشر کنید، با npm، pnpm یا yarn نصبش کنید و خصوصی نگهش دارید. هر قدم توضیح داده شده.
فقط میخواهید نصب npm سریعتر شود یا وقتی npmjs.com در دسترس نیست کار کند؟ آینهٔ npm را ببینید.
npm بستههای جاوااسکریپت را نصب میکند. میتواند یک scope (بخش @name/ در نام بسته) را به رجیستری دیگری جز بقیه بفرستد، و زرین از همین راه وارد میشود: بستههای @you/... شما از زرین میآیند و بقیه همچنان از npmjs.com.
در بستهها توکن بسازید (ساخت توکن انتشار). سپس این دو خط را در فایلی به نام .npmrc بگذارید؛ یا در پوشهٔ پروژه، یا در پوشهٔ خانهتان (~/.npmrc) برای همهٔ پروژهها:
@your-username:registry=https://api.zaryn.xyz/v1/packages/npm///api.zaryn.xyz/v1/packages/npm/:_authToken=YOUR_TOKEN@your-username/ شروع میشود در زریناند._authToken=${NPM_TOKEN}، npm آن را از متغیر محیطی میخواند.نام کاربری زرین خودتان، یا نام سازمانی که مالک یا مدیرش هستید، را بهعنوان scope بگذارید.
در package.json نامی با scope و یک نسخه بدهید:
{ "name": "@your-username/hello", "version": "0.1.0", "main": "index.js"}npm publish --access publicبدون --access public، npm بستهٔ خصوصی میخواهد (قاعدهٔ npm برای نامهای scopeدار) که پریمیوم لازم دارد. برای انتشار اصلاحیه version را بالا ببرید و دوباره منتشر کنید؛ نسخهٔ منتشرشده جایگزین نمیشود.
با آن دو خط .npmrc، مثل هر بستهٔ دیگری نصبش کنید:
npm install @your-username/hellopnpm add @your-username/helloyarn add @your-username/helloهر commit مخزنی که package.json دارد بدون انتشار نصب میشود: زبانهٔ نصب مخزن (کنار دستورهای clone) خطش را میدهد:
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 در هر نصب میسنجد.