100- آموزش جاوااسکریپت | پروژه عملی قسمت 1 از 8:راهاندازی محیط توسعه برای ساخت اپلیکیشن CRUD با ES2015 Modules
در این بخش، محیط توسعه لازم برای ساخت یک اپلیکیشن CRUD با ماژولهای ES2015 راهاندازی میشود. همچنین با نقش Babel، Webpack، npm و Webpack Dev Server در اجرای کدهای ماژولار در مرورگر آشنا میشوید.
در این پروژه قرار است یک اپلیکیشن کامل CRUD با استفاده از ماژولهای ES2015 ساخته شود.
تا اینجا بیشتر مثالها مستقیماً در مرورگر اجرا میشدند و نیازی به فرایند build یا compile نداشتند، اما برای استفاده از ماژولها به یک محیط توسعه مناسب نیاز داریم.
برای این کار از یک استارتر مبتنی بر Babel و Webpack استفاده میکنیم. این ابزارها کمک میکنند کدهای جدید جاوااسکریپت به نسخهای تبدیل شوند که مرورگر بتواند آن را اجرا کند.
چرا به Babel و Webpack نیاز داریم؟
ماژولهای ES2015 در این پروژه بهصورت مستقیم اجرا نمیشوند، بنابراین باید از ابزارهایی برای آمادهسازی کد استفاده کنیم.
نقش Babel
Babel کدهای ES2015+ را به جاوااسکریپت سازگارتر، مانند ES5، تبدیل میکند.
نقش Webpack
Webpack فایلهای پروژه را مدیریت و bundle میکند و یک گردش کار مناسب برای توسعه در اختیار قرار میدهد.
نقش Webpack Dev Server
این ابزار یک سرور توسعه در اختیار ما قرار میدهد تا پروژه را در مرورگر اجرا کنیم و در زمان توسعه، تغییرات را سریعتر بررسی کنیم.
پیشنیازهای پروژه
برای استفاده از این محیط توسعه، باید Node.js روی سیستم نصب باشد. با نصب Node.js، ابزار npm نیز در دسترس قرار میگیرد.
اگر از macOS یا Linux استفاده میکنید
معمولاً ترمینال پیشفرض سیستم کافی است.
اگر از Windows استفاده میکنید
بهتر است بهجای CMD از Git Bash استفاده کنید، چون برای کارهای توسعهای محیط مناسبتری فراهم میکند.
دریافت فایلهای استارتر پروژه
برای شروع، ابتدا یک پوشه برای پروژه بسازید. در این آموزش نام پروژه micro-post در نظر گرفته شده است.
سپس فایلهای استارتر را از مخزن GitHub دریافت کنید. این کار را میتوانید با git clone یا دانلود فایل ZIP انجام دهید.
دریافت پروژه با Git
git clone https://github.com/bradtraversy/babel_webpack_starter.git
یا دانلود فایل ZIP
اگر از Git استفاده نمیکنید، میتوانید فایل ZIP پروژه را دانلود کرده و محتوای آن را داخل پوشه پروژه خود قرار دهید.
نصب وابستگیها با npm
بعد از انتقال فایلها به پوشه پروژه، باید وابستگیها را نصب کنید.
این وابستگیها در فایل package.json تعریف شدهاند.
اجرای نصب
npm install
با اجرای این دستور:
- پوشه
node_modulesساخته میشود - تمام پکیجهای موردنیاز نصب میشوند
- ابزارهایی مثل
Webpack،BabelوWebpack Dev Serverآماده استفاده میشوند
معمولاً نیازی نیست فایلهای داخل
node_modulesرا بهصورت مستقیم ویرایش کنید.
باز کردن پروژه در Visual Studio Code
اگر از VS Code استفاده میکنید، میتوانید پروژه را مستقیم از ترمینال باز کنید:
code .
این دستور پوشه فعلی را در Visual Studio Code باز میکند.
استفاده از ترمینال داخلی VS Code
در VS Code میتوانید از ترمینال داخلی نیز استفاده کنید.
این ترمینال از مسیر زیر در دسترس است:
View > Integrated Terminal
یا با میانبر:
Ctrl + `
اگر در ویندوز هستید، ممکن است ترمینال پیشفرض PowerShell باشد. اگر میخواهید از Git Bash استفاده کنید، باید آن را در تنظیمات VS Code بهعنوان shell پیشفرض تعریف کنید.
بررسی اسکریپتهای package.json
در فایل package.json معمولاً بخشی به نام scripts وجود دارد که دستورات اصلی پروژه را مشخص میکند.
در این پروژه دو دستور مهم داریم:
npm run buildnpm start
اجرای فرایند Build
دستور زیر کدهای پروژه را build میکند:
npm run build
این دستور:
- کدهای موجود در پوشه
srcرا پردازش میکند - آنها را به نسخه سازگارتر تبدیل میکند
- خروجی نهایی را در پوشه
buildقرار میدهد
ساختار فایل ورودی پروژه
فایل اصلی اپلیکیشن در پوشه src قرار میگیرد.
در این مثال، فایل اصلی app.js است.
نمونه کد داخل src/app.js
const greeting = 'Hello World';
console.log(greeting);
این فایل مستقیماً در HTML قرار نمیگیرد، بلکه ابتدا توسط Webpack و Babel پردازش میشود و خروجی bundle شده آن در پوشه build ساخته میشود.
نتیجه Build
پس از اجرای دستور build، یک فایل bundle در پوشه build ایجاد میشود.
این فایل نسخه کامپایلشده کد شماست و همان فایلی است که باید در HTML بارگذاری شود.
برای مثال، اگر در کد اصلی از const استفاده کرده باشید، ممکن است در خروجی نهایی به var تبدیل شود، چون ES5 از const پشتیبانی نمیکند.
اتصال فایل Build شده به HTML
در فایل index.html باید فایل bundle شده را به صفحه متصل کنید، نه فایل اصلی app.js.
نمونه اتصال فایل bundle
<script src="build/app.bundle.js"></script>
این فایل همان خروجی پردازششدهای است که مرورگر اجرا میکند.
اجرای سرور توسعه
برای اجرای پروژه در محیط توسعه، از دستور زیر استفاده کنید:
npm start
این دستور سرور توسعه را اجرا میکند و پروژه را روی localhost در اختیار شما قرار میدهد.
ممکن است پروژه روی پورتهای مختلفی مانند 8080، 8081 یا 8082 اجرا شود. این موضوع به پورتهای آزاد سیستم شما بستگی دارد.
بررسی اجرای پروژه در مرورگر
بعد از اجرای سرور توسعه، میتوانید پروژه را در مرورگر باز کنید.
اگر کد نمونه Hello World را در app.js قرار داده باشید، باید خروجی آن را در کنسول مرورگر مشاهده کنید.
نمونه کد جاوااسکریپت
const greeting = 'Hello World';
console.log(greeting);
تفاوت npm run build و npm start
این دو دستور کاربردهای متفاوتی دارند:
npm run build
npm run build
- خروجی نهایی پروژه را تولید میکند
- فایلهای bundle شده را در پوشه
buildمیسازد
npm start
npm start
- سرور توسعه را اجرا میکند
- پروژه را در مرورگر نمایش میدهد
- برای توسعه روزمره مناسب است
نکته کاربردی درباره ترمینال
اگر سرور توسعه را در ترمینال داخلی VS Code اجرا کنید، ممکن است آن ترمینال برای اجرای دستورات دیگر درگیر شود.
به همین دلیل بهتر است سرور را در یک ترمینال جداگانه، مثل Git Bash، اجرا کنید تا ترمینال داخلی VS Code برای سایر کارها آزاد بماند.
توقف سرور در ترمینال
Ctrl + C
جمعبندی
در این بخش، محیط توسعه لازم برای پروژه ماژولار جاوااسکریپت راهاندازی شد. مهمترین کارهایی که انجام شدند عبارتاند از:
- نصب
Node.jsوnpm - استفاده از استارتر مبتنی بر
BabelوWebpack - نصب وابستگیها با
npm install - اجرای build با
npm run build - اجرای سرور توسعه با
npm start - آشنایی با ساختار فایلهای
srcوbuild
با این تنظیمات، پروژه آماده است تا در بخش بعدی کار با ماژولهای ES2015 و import/export را شروع کنیم.