اشتراکها
یک نکتهی تکمیلی
روشی که در سری ابتدایی Angular مطرح شدهاست، مبتنی بر سیستم مدیریت ماژولهای system.js هست. اما در نهایت روش توصیه شدهی توسط تیم Angular استفاده از Angular CLI است که مبتنی بر webpack است. این روش بسیار سادهتر (کار با ابزاری استاندارد)، ساختیافتهتر (به همراه تنظیماتی مبتنی بر best practices)، بهینهتر (به همراه بهینه سازیهای بسیاری جهت کاهش حجم نهایی و کاهش تعداد فایلهای تولیدی) و پیشرفتهتر از روش system.js هست و توضیحات تکمیلی آن در مطلب « Angular CLI - قسمت پنجم - ساخت و توزیع برنامه» ارائه شدهاند. این روشی است که برای ارائهی نهایی از آن استفاده میشود و در مطالبی مانند «یکپارچه سازی Angular CLI و ASP.NET Core در VS 2017» و «سفارشی سازی صفحهی اول برنامههای Angular CLI توسط ASP.NET Core» از آنها استفاده شدهاست.
روشی که در سری ابتدایی Angular مطرح شدهاست، مبتنی بر سیستم مدیریت ماژولهای system.js هست. اما در نهایت روش توصیه شدهی توسط تیم Angular استفاده از Angular CLI است که مبتنی بر webpack است. این روش بسیار سادهتر (کار با ابزاری استاندارد)، ساختیافتهتر (به همراه تنظیماتی مبتنی بر best practices)، بهینهتر (به همراه بهینه سازیهای بسیاری جهت کاهش حجم نهایی و کاهش تعداد فایلهای تولیدی) و پیشرفتهتر از روش system.js هست و توضیحات تکمیلی آن در مطلب « Angular CLI - قسمت پنجم - ساخت و توزیع برنامه» ارائه شدهاند. این روشی است که برای ارائهی نهایی از آن استفاده میشود و در مطالبی مانند «یکپارچه سازی Angular CLI و ASP.NET Core در VS 2017» و «سفارشی سازی صفحهی اول برنامههای Angular CLI توسط ASP.NET Core» از آنها استفاده شدهاست.
Workspace، اولین بار در انگیولار 6 معرفی شد. Angular Workspace به شما اجازه میدهد کل web application خود را به چندین پروژهی کوچکتر سازماندهی کنید. بیشتر پروژههای کوچک انگیولار تنها شامل یک یا دو پروژه، به ازای هر Workspace میباشند. برای مثال وقتی شما یک پروژهی جدید انگیولار را با Angular CLI ایجاد میکنید، در این حالت Workspace شامل یک app واقعی و یک پروژه e2e tests میباشد.
مستندات انگیولار یک پروژه را به صورت زیر توصیف میکند:
A set of files that comprise a standalone app, a library, or a set of end-to-end (e2e) tests.
شما میتوانید دو نوع پروژه را ایجاد کنید : Application یا Library
درست همانند مفهوم یک کتابخانه در توسعه نرم افزار، یک کتابخانه اشاره دارد به مجموعهای از کدهای با قابلیت استفادهی مجدد که میتوانند بین پروژههای مختلف به اشتراک گذاشته شوند؛ هم چنین Angular CLI این کار را برای شما آسان میکند تا کتابخانه خودتان را در یک مرکز ثبت مثل npm انتشار دهید تا توسط دیگر توسعه دهندگان استفاده شود.
نوع Application اشاره به یک Application مستقل انگیولار دارد.
Create Empty Workspaces
در انگیولار 7 یک CLI option جدید ( create-application-- ) معرفی شد که شما میتوانید با اضافه کردن این option به دستور ng new، سبب ایجاد یک Workspace خالی شوید. این option با دستور ng new استفاده میشود و میتواند مقدار true یا false را دریافت کند که به صورت پیش فرض به true تنظیم شده است. بنابراین وقتی شما یک پروژهی جدید را ایجاد میکنید، سبب ایجاد یک پروژهی اولیه انگیولار در Workspace هستید؛ همچنین میتوانید create-application-- را به false تنظیم کنید تا CLI یک پروژه اولیه انگیولار را در Workspace ایجاد نکند .
اکنون اجازه دهید آن را در عمل ببینیم:
مطمئن شوید که نگارش انگیولار شما، 7 یا بالاتر باشد:
ng --version
ng new angular-apps --create-application=false
angular-apps/README.md angular-apps/angular.json angular-apps/package.json angular-apps/tsconfig.json angular-apps/tslint.json angular-apps/.editorconfig angular-apps/.gitignore
اکنون به Command Prompt برگردیم و وارد Angular Workspace خودمان شویم:
cd angular-apps
ng generate application admin
همچنین میتوانید یک کتابخانه را در Workspace خود با استفاده از دستور زیر ایجاد کنید:
ng generate library ngx-qrcode
بعد از ایجاد کردن چندین Application بدون Application پیش فرض برای Workspace خود، میتوانید اقدام به ایجاد modules ، service ، components و ... در یک پروژه مشخص با استفاده از project option-- کنید.
برای نمونه یک سرویس را در پروژه admin ایجاد میکنیم:
ng generate service auth --project=admin
projects/admin/src/app/auth.service.spec.ts projects/admin/src/app/auth.service.ts
Serving Specific Apps in Your Workspace
جهت به خدمت گرفتن یک Application مشخص در Workspace دستور زیر را اجرا کنید:
ng serve admin
نکته
اگر در Command Prompt دستور زیر را وارد کنید:
ng new
What name would you like to use for the new workspace and initial project?
نتیجه گیری
در این مطلب متوجه مفهوم Angular Workspace و روش ایجاد کردن یک Workspace خالی شدیم و همچنین چگونه یک Application و یک Library را در یک Workspace ایجاد کنیم.
«... در این سیستم از AngularCLI استفاده نشده است ...»
مشکل همینجا است! اگر از Angular CLI استفاده کنید، در پشت صحنه تمام مباحث bundling & minification و همچنین حذف کدهای مرده (استفاده نشده) را به صورت خودکار توسط Webpack، پلاگینهای آن و کامپایلر مورد استفاده، انجام میدهد (و شما نیازی به تنظیم اضافهتر و یا دستی برای این مورد ندارید). در کل روش استاندارد کار با Angular با راه اندازی یک پروژهی Angular CLI شروع میشود. بنابراین بهتر است آرام آرام کارتان را به این سیستم منتقل کنید (روش کار با System JS که روزهای اول ارائهی Angular مطرح شده بود (همان تصویری که ارسال کردید)، الان دیگر مطلقا استفاده نمیشود). همین سری Angular CLI را از قسمت اول آن پیگیری کنید، برای شروع کفایت میکند.
اگر به قسمت «یک مثال: ساخت برنامهی مثال قسمت چهارم - تنظیمات مسیریابی در حالت prod » مطلب جاری دقت کنید، یک تصویر خروجی ذیل آن ارسال شدهاست.
در این خروجی، کمتر از 5 فایل js قابل مشاهده هستند که حاصل bundling & minification نهایی و تمام فایلهای برنامه، توسط Angular CLI هستند.
به علاوه Kendo UI یک نگارش مخصوص Angular را دارد که برای آن از صفر بازنویسی شدهاست و کاملا با Angular CLI سازگار است. همچنین مجموعه کامپوننتهای سبکتر و بهتر دیگری هم برای Angular وجود دارند.
نظرات مطالب
Angular CLI - قسمت اول - نصب و راه اندازی
یک نکتهی تکمیلی: پشتیبانی توکار از به روز رسانی بستههای Angular
به همراه Angular CLI نگارش 1.7، دستور جدیدی به نام ng update اضافه شدهاست که تمام وابستگیهای مرتبط به Angular را به صورت خودکار به روز رسانی میکند.
به همراه Angular CLI نگارش 1.7، دستور جدیدی به نام ng update اضافه شدهاست که تمام وابستگیهای مرتبط به Angular را به صورت خودکار به روز رسانی میکند.