برنامه نویسی

من از تکرار همان دستورات خسته شدم ، بنابراین Jido را ساختم – یک اتوماسیون گردش کار CLI

به عنوان یک توسعه دهنده ، ممکن است لحظاتی داشته باشید که خود را به طور مکرر همان دسته از دستورات را اجرا کنید. به عنوان مثال ، دست انداز package.json هر زمان که می خواهید نسخه جدیدی از بسته NPM خود را ارسال کنید ، نسخه ، فشار به git و انتشار به NPM.

من با همان مسئله روبرو شدم. و با توجه به اینکه مغز من چقدر تنبل است ، می خواستم این کار را ساده تر و ساده تر کنم. بنابراین ، من جیدو را ساختم.

جیدو چیست؟

Jido یک اتوماسیون گردش کار CLI است ، جایی که می توانید گردش کار خود را تعریف کنید (نامیده می شود flows) در یک فایل پیکربندی ، و آنها را با استفاده از آن اجرا کنید npx jido flow بشر

پرونده پیکربندی یک است jido.config.js در ریشه پروژه بنابراین ، منطق JS سفارشی نیز بر خلاف اسکریپت های Bash قابل اجرا است.

شروع با jido با دویدن:

npm install --save-dev jido
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پرونده پیکربندی

در jido.config.js تماس با پرونده jido() عملکرد و صادر کردن آن به طور پیش فرض. این یک شی را به عنوان آرگومان می گیرد ، که دارای کلید است flows که دارای مجموعه ای از اشیاء است ، هر شیء تعریف می کند flowبشر

هر flow HAS:

  • name: نام جریان
  • description (اختیاری): توضیحات کوتاه در مورد جریان
  • steps: آرایه ای از اشیا

هر یک step از شکل زیر است:

  • run: دستور اجرا در این مرحله (به عنوان مثال ، ‘npm run dev’ یا ‘git push’ و غیره).
  • onStart, onSuccess, onFailure: قلاب های اختیاری. اینها کارکردهایی هستند که در شروع ، موفقیت و عدم موفقیت مرحله فراخوانده می شوند.
  • plugins: مجموعه ای از اشیاء ، که در آن هر شیء یک افزونه است. مدتی در مورد این موضوع بیشتر صحبت خواهیم کرد.

برای داربست یک فایل پیکربندی اساسی ، اجرا کنید npx jido initبشر این پرونده پیکربندی زیر را تولید می کند:

import { jido } from "jido";

/*
* Define your workflows here.
* Each flow is a series of steps with commands to run and optional hooks (onStart, onSuccess, etc) to execute.
*/

const config = {
  flows: [
    {
      name: "run",
      description: "Run the project",
      steps: [
        {
          run: "npm install",
          onStart: () => console.log("Installing dependencies..."),
          onSuccess: () => console.log("Dependencies installed!"),
          plugins: []  // Any plugins go here
        },
        {
          run: "npm run dev",
          onStart: () => console.log("Starting dev server..."),
          plugins: []  // Any plugins go here
        }
      ]
    }
  ]
}

export default jido(config);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پلاگین

اکنون ، یکی دیگر از قسمت های جالب دیگر جیدو. افزونه ها یک افزونه در اصل یک موضوع از نوع زیر است:

type Plugin = {
    onStart?: Hook;
    onSuccess?: Hook;
    onFailure?: Hook;
};
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در اصل ، این یک شی با هر یا همه این قلاب ها است که به آن وصل شده اند step جایی که افزونه به آن وصل شده است.

با این حال ، روش توصیه شده برای نوشتن افزونه نوشتن آن در تابعی است که یک شی از نوع فوق را برمی گرداند. این امر در قابلیت های سفارشی و وابسته به استدلال یک افزونه امکان پذیر است.

به عنوان مثال:

// Plugin function
const myPlugin = (name) => {
    return ({
        onStart: () => {
            console.log(`[myPlugin] Hello, ${name}! Step started...`);
        }
    });
}

// In a step in the config file:
plugins: [myPlugin("aether-flux")]

// In another step:
plugins: [myPlugin("John Doe")]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

حالا ، از کجا از جیدو استفاده می کنید؟

خوب ، یکی از موارد استفاده هنگام انتشار نسخه جدیدی از بسته به NPM یا هر جای دیگر است. به همین دلیل حتی فکر کردم این CLI را بسازم.

بسیاری از برنامه های دیگر نیز وجود دارد. به عنوان مثال:

  • پس از ساخت موفقیت آمیز به Vercel اعزام شوید.
  • قبل از آزمایش ، حالت پروژه را تمیز کنید.
  • Dev محلی را با ورود به سیستم سفارشی و/یا ردیابی تحلیلی اجرا کنید.
  • تیم هشدار (Slack ، Discord و غیره) پس از ساخت و استقرار موفق.

و در هر جای دیگر ، واقعاً ، جایی که خود را بارها و بارها انجام می دهید.

خوب ، نظر شما چیست؟

من امیدوارم که Jido بتواند کارهای تکراری را برای بسیاری از شیاطین در آنجا ساده کند ، بنابراین به آنها اجازه می دهد تا به جای اینکه وقت زیادی را صرف فشار به GitHub و ساخت و استقرار و استفاده از آن کنند ، بیشتر روی قسمت سرگرم کننده (با نام “کدگذاری”) تمرکز کنند.

یک بار در گردش کار خود به آن فرصت دهید. من مطمئن هستم که این شگفتی ها کار می کند.

BTW ، انتشار هر نسخه جدید Jido توسط jidoبشر

repo repo را ستاره کنید

📦 اکنون CLI را دریافت کنید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا