انتشار یک بسته خصوصی در بسته های GitHub

Summarize this content to 400 words in Persian Lang
اخیراً در محل کار، با نیاز به انتشار یک بسته به صورت خصوصی مواجه شدم. پس از ارزیابی برخی گزینه ها، متوجه شدم که بهترین راه برای انجام این کار استفاده از بسته های GitHub است.
بسته های GitHub چیست؟
بستههای GitHub به شما امکان میدهد بستههایی از انواع مختلف (مانند npm، Maven، Docker و غیره) را مستقیماً در GitHub ذخیره کنید. بسته به نیاز پروژه خود می توانید آنها را عمومی یا خصوصی کنید. در اینجا می توانید اطلاعات بیشتری کسب کنید.
مرحله 1: راه اندازی پروژه و الزامات
ابتدا باید یک مخزن در GitHub داشته باشید که بسته شما در آن ذخیره می شود. برای اطمینان از خصوصی بودن بسته، مطمئن شوید که مخزن خصوصی است.
مرحله 2: ایجاد بسته خود
ایجاد package.json: تعویض کنید با کاربر یا سازمان مورد نظر
npm init –scope=@
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این یک را ایجاد می کند package.json فایل با name فیلد قبلاً با محدوده قالب بندی شده است. استفاده از نمایه GitHub من به عنوان مثال:
{
“name”: “@carloshendvpm/my-package”,
“version”: “1.0.0”,
“description”: “My private package on GitHub Packages”,
…
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مرحله 3: پیکربندی رجیستری برای بسته های GitHub
اکنون، باید مطمئن شوید که npm میداند که میخواهید این بسته را در بستههای GitHub منتشر کنید، نه در رجیستری عمومی npm. برای انجام این کار، را اضافه کنید publishConfig زمینه به شما package.json:
“publishConfig”: {
“registry”: “https://npm.pkg.github.com/”
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این به npm می گوید که از بسته های GitHub به عنوان مقصد انتشار استفاده کند. شما package.json اکنون باید به این شکل باشد:
{
“name”: “@carloshendvpm/my-package”,
“version”: “1.0.0”,
“type”: “module”,
“repository”: {
“url”: “https://github.com/carloshendvpm/my-package.git”
},
“dependencies”: {
…
},
“devDependencies”: {
…
},
“publishConfig”: {
“registry”: “https://npm.pkg.github.com/”
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مرحله 4: استفاده از GitHub Actions برای انتشار بسته
یک دایرکتوری به نام ایجاد کنید .github/workflows داخل پروژه شما داخل workflows دایرکتوری، یک فایل به نام ایجاد کنید publish.yml با محتوای زیر:
name: Publish package to GitHub Packages
on:
release:
types: [published]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
– uses: actions/checkout@v4
– uses: actions/setup-node@v3
with:
node-version: ’20.x’
registry-url: ‘https://npm.pkg.github.com’
scope: ‘@carloshendvpm’
– name: Install dependencies
run: npm install
– name: Publish package
run: npm publish –access restricted
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این عمل تنها زمانی اجرا می شود که نسخه جدیدی ایجاد شود. شما می توانید این رفتار را بر اساس ترجیحات خود تغییر دهید. من هم استفاده کرده ام workflow_dispatch رویداد، که به شما امکان می دهد به صورت دستی اقدام را از رابط GitHub فعال کنید. توجه به این نکته ضروری است که GITHUB_TOKEN به طور خودکار توسط GitHub تولید می شود. در اینجا می توانید در مورد آن بیشتر بدانید.
مرحله 5: ایجاد نسخه جدید
اطلاعات برچسب را پر کنید و نسخه جدید را ایجاد کنید. این عمل را برای اجرا آغاز می کند.
مرحله 6: استفاده از بسته در پروژه های خود
قبل از نصب بسته، مراحل زیر را دنبال کنید:
یک نشانه دسترسی شخصی در GitHub ایجاد کنید. این توکن به شما امکان می دهد با API GitHub احراز هویت و بسته خود را نصب کنید. رفتن به تنظیمات / تنظیمات برنامهنویس / نشانههای دسترسی شخصی و یک توکن جدید با مجوز خواندن تولید کنید.
در پروژه ای که از پکیج استفاده خواهد شد، a را ایجاد کنید .npmrc فایل در دایرکتوری ریشه
پیکربندی زیر را به خود اضافه کنید .npmrc فایل، جایگزین با توکنی که تولید کردید:
//npm.pkg.github.com/:_authToken=
@organizationName:registry=https://npm.pkg.github.com
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اکنون می توانید بسته را در پروژه خود با استفاده از:
“@carloshendvpm/my-package”: “1.0.0”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
npm install @carloshendvpm/my-package@1.0.0
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
نتیجه گیری
امیدوارم این به نوعی مفید بوده باشد. به زودی، من قصد دارم یک راهنمای کامل در مورد ایجاد یک بسته با استفاده از کتابخانه Svelte به اشتراک بگذارم. اگر پیشنهادی دارید یا متوجه هر گونه اشتباهی شدید، می توانید نظر خود را اعلام کنید یا اصلاح کنید. نسخه آلمانی به زودی …
اخیراً در محل کار، با نیاز به انتشار یک بسته به صورت خصوصی مواجه شدم. پس از ارزیابی برخی گزینه ها، متوجه شدم که بهترین راه برای انجام این کار استفاده از بسته های GitHub است.
بسته های GitHub چیست؟
بستههای GitHub به شما امکان میدهد بستههایی از انواع مختلف (مانند npm، Maven، Docker و غیره) را مستقیماً در GitHub ذخیره کنید. بسته به نیاز پروژه خود می توانید آنها را عمومی یا خصوصی کنید. در اینجا می توانید اطلاعات بیشتری کسب کنید.
مرحله 1: راه اندازی پروژه و الزامات
ابتدا باید یک مخزن در GitHub داشته باشید که بسته شما در آن ذخیره می شود. برای اطمینان از خصوصی بودن بسته، مطمئن شوید که مخزن خصوصی است.
مرحله 2: ایجاد بسته خود
- ایجاد
package.json
: تعویض کنید
با کاربر یا سازمان مورد نظر
npm init --scope=@
این یک را ایجاد می کند package.json
فایل با name
فیلد قبلاً با محدوده قالب بندی شده است. استفاده از نمایه GitHub من به عنوان مثال:
{
"name": "@carloshendvpm/my-package",
"version": "1.0.0",
"description": "My private package on GitHub Packages",
...
}
مرحله 3: پیکربندی رجیستری برای بسته های GitHub
اکنون، باید مطمئن شوید که npm میداند که میخواهید این بسته را در بستههای GitHub منتشر کنید، نه در رجیستری عمومی npm. برای انجام این کار، را اضافه کنید publishConfig
زمینه به شما package.json
:
"publishConfig": {
"registry": "https://npm.pkg.github.com/"
}
این به npm می گوید که از بسته های GitHub به عنوان مقصد انتشار استفاده کند. شما package.json
اکنون باید به این شکل باشد:
{
"name": "@carloshendvpm/my-package",
"version": "1.0.0",
"type": "module",
"repository": {
"url": "https://github.com/carloshendvpm/my-package.git"
},
"dependencies": {
...
},
"devDependencies": {
...
},
"publishConfig": {
"registry": "https://npm.pkg.github.com/"
}
}
مرحله 4: استفاده از GitHub Actions برای انتشار بسته
یک دایرکتوری به نام ایجاد کنید .github/workflows
داخل پروژه شما داخل workflows
دایرکتوری، یک فایل به نام ایجاد کنید publish.yml
با محتوای زیر:
name: Publish package to GitHub Packages
on:
release:
types: [published]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: '20.x'
registry-url: 'https://npm.pkg.github.com'
scope: '@carloshendvpm'
- name: Install dependencies
run: npm install
- name: Publish package
run: npm publish --access restricted
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
این عمل تنها زمانی اجرا می شود که نسخه جدیدی ایجاد شود. شما می توانید این رفتار را بر اساس ترجیحات خود تغییر دهید. من هم استفاده کرده ام workflow_dispatch
رویداد، که به شما امکان می دهد به صورت دستی اقدام را از رابط GitHub فعال کنید. توجه به این نکته ضروری است که GITHUB_TOKEN
به طور خودکار توسط GitHub تولید می شود. در اینجا می توانید در مورد آن بیشتر بدانید.
مرحله 5: ایجاد نسخه جدید
اطلاعات برچسب را پر کنید و نسخه جدید را ایجاد کنید. این عمل را برای اجرا آغاز می کند.
مرحله 6: استفاده از بسته در پروژه های خود
قبل از نصب بسته، مراحل زیر را دنبال کنید:
-
یک نشانه دسترسی شخصی در GitHub ایجاد کنید. این توکن به شما امکان می دهد با API GitHub احراز هویت و بسته خود را نصب کنید. رفتن به تنظیمات / تنظیمات برنامهنویس / نشانههای دسترسی شخصی و یک توکن جدید با مجوز خواندن تولید کنید.
-
در پروژه ای که از پکیج استفاده خواهد شد، a را ایجاد کنید
.npmrc
فایل در دایرکتوری ریشه -
پیکربندی زیر را به خود اضافه کنید
.npmrc
فایل، جایگزین
با توکنی که تولید کردید:
//npm.pkg.github.com/:_authToken=
@organizationName:registry=https://npm.pkg.github.com
- اکنون می توانید بسته را در پروژه خود با استفاده از:
"@carloshendvpm/my-package": "1.0.0"
npm install @carloshendvpm/my-package@1.0.0
نتیجه گیری
امیدوارم این به نوعی مفید بوده باشد. به زودی، من قصد دارم یک راهنمای کامل در مورد ایجاد یک بسته با استفاده از کتابخانه Svelte به اشتراک بگذارم. اگر پیشنهادی دارید یا متوجه هر گونه اشتباهی شدید، می توانید نظر خود را اعلام کنید یا اصلاح کنید. نسخه آلمانی به زودی …