هاستی رایگان برای انتشار فایل‌های استاتیک

یه راهی نشونتون میدم که بدون سردرد کشیدن بابت ساختن ساب دامین و درگیری با FTP، فقط با یه دستور، بتونید فایل‌های استاتیکتونو منتشرشون کنید؛ اونم روی یه سرویس رایگان به اسم surge.

خداییش دیگه کی توی سال ۲۰۱۶ حوصله داره هِلک هِلک پاشه بره روی هاست یا سرورش یه ساب دامین یا دایرکتوری بسازه، تا بعدش تازه با FTP هر بار فایل‌ها رو از روی هارد بکشه بندازه روی سرور و دوباره دوباره هی این چرخه رو برای هر بار پیش نمایش و منتشر کردن چند تا فایل HTML طی کنه. اگه حوصله‌اش ندارین پس بخونید.

این بار هم یه سری از جوانان بیکار ممالک غربی، وقتی که داشتن به سیر و سلوک در عوالم اسمشونبر می‌پرداختن، برای اینکه هم از شر این FTP بازی‌ها خلاص بشن و هم مهم‌تر از اون اینکه بتونن زمان بیشتری برای پلی استیشن کردن ذخیره کنن، ایده ساختن سرویسی به اسم surge.sh به ذهن پلیدشون خطور کرد. اینطوری که بتونن فقط با یه دستور توی ترمینال، فایل‌های استاتیکشون رو منتشر (deploy) کنن روی سرور، اونم تازه با یه دامین مختص به خود اون پروژه!

بله، این جوانان بیکار، در حالی که نعره می‌زدند «ما زنده به آنیم که آرام نگیریم؛ موجیم که آسودگی ما عدم ماست»، به افکار پلیدشون جامه عمل پوشوندن و سرویس زیبایی زاییدن که اسمش به افتخار صائب تبریزی، شاعر بلند آوازه‌ی ایرانی سبک هندی (جدی نگیرید) گذاشتن موج خروشان (همون surge).

اگه nodejs روی سیستمتون نصب داشته باشید (اگه ندارید این مطلب بخونید) تنها با همین دو تا دستور زیر می‌تونید پوشه‌ای که حاوی فایل‌های استاتیک مورد نظرتون هست روی سرورهای surge منتشر کنید.

$ npm install --global surge
# In your project directory, just run…
$ surge

این surge بلا گرفته، کلی امکانات قشنگ قشنگ داره که از جمله‌ی اونا میشه به اختصاص دادن یه نام دامنه سفارشی به یه پروژه، پشتیبانی از router های سمت کاربر برای پروژه‌هایی که از فریم‌ورک‌های جاوا اسکریپتی مثل reactjs و angularjs استفاده می‌کنن، امکان آپلود پروژه‌های جکیل اشاره کرد. کلی راهنمای تر و تمیزم، آن جوانان بیکار برای امکانات این سرویس نوشتن که می‌تونید اینجا ببینیدشون.

فوت‌های کوزه گری:

  • برای سلامت روان خودتون هم که شده تا اونجایی که امکانش هست از نصب کردن بسته‌های nodejs‌ به صورت global (همون پارامتر g-) پرهیز کنید و اونا رو به صورت لوکال و مخصوص به هر پروژه نصب کنید. تا بعدها اگه توی یه پروژه دیگه یه ورژن بالا پایین شد این surge، برای سازگار کردنش زخم و زیلی نشید.
  • اگه از فوت بالایی بخواهید استفاده کنید در نتیجه مجبورید که یه تسک (npm script) هم برای اجراش توی فایل package.json پروژه درست کنید که وقتی اجراش کردید بره دنبال surge بگرده و فایل‌هاتون تحویلش بده تا براتون منتشر کنه.
  • surge به طور پیش فرض وقتی فراخونی میشه همون پوشه‌ی جاری که ترمینال توش هست رو مبدا خودش در نظر می‌گیره و یه ساب دامین عیناً با همون اسم براتون روی سرورهاش درست میکنه و روی اون منتشر میکنه فایل‌هاتونو. اگه یه وقت خواستید که اسم اون ساب دامین با اسم فولدرتون فرق داشته باشه می‌تونید اسم ساب دامین رو به انواع یه پارمتر مثل دستور زیر بدید تا براتون دیگه همیشه روی اون ساب دامین فایل‌های اون پروژه رو منتشر کنه.
# First install surge locally
$ npm install surge

توی دستور بالا، بسته surge به صورت لوکال روی پروژه نصب کردیم و بعد از اون هم توی دستور پایینی اسکریپت انتشارش توی فایل packaje.json‌ اضافه می‌کنیم. توی این دستور «public» اسم دایرکتوریی هست که می‌خواهیم آپلودش کنیم و «project-name.surge.sh» هم اون ساب دامین مورد نظرمون هست که انتخاب کردیک تا surge فایل‌هامونو تحت اون منتشر کنه.

// Then add this script in package.json file
"scripts": {
  "stage": "surge -p public -d project-name.surge.sh"
}

در آخر هم فقط کافیه که دستور زیر اجرا کنیم تا surge کار خودش شروع کنه

# Finally in your project directory, just run…
$ npm run stage

++ پی نوشت: این جوونای که وصفشون رفت، خب مشخصاً، خیلی اهل حال هستن؛ اگه یه وقت ایده یا سوالی در رابطه با surge داشتید می‌تونید به راحتی توی کانال‌های اِسلکشون یا توی تویتترشون مطرح کنید. از اون جایی که بیکارن، خیلی سریع جوابتونو میدن.

اگر نشانگر بارگزاری زیر چرخید و هیچ اتفاقی نیفتاد و کامنت‌ها لود نشد، با عرض پوزش باید عرض کنم که متاسفانه شما بدون پراکسی اینجا هستید و از اونجایی که فیلترچی سرویس مورد نظر را مسدود کرده است، تا وقتی که با پراکسی صفحه را مجدداْ لود نفرمایید نمی‌توانید کامنت‌ها را مشاهده کنید :((