توسعه دهندگان وب عاشق این وب سایت هستند پیش پردازنده CSS Sass. بر اساس نظرات ساس در وضعیت CSS نظرسنجی، هر سازنده می داند که چیست ، 89٪ از آن به طور منظم استفاده می کنند و 88٪ رضایت بالایی دارند.
بسیاری از بسته های وب شامل پردازش Sass هستند ، اما ممکن است شما از آن استفاده کنید PostCSS بدون اینکه متوجه باشم PostCSS در درجه اول به خاطر خود شناخته شده است پلاگین Autoprefixer، که به طور خودکار اضافه می شود -webkit
، -moz
، و -ms
پیشوندهای فروشنده در صورت لزوم به خصوصیات CSS. سیستم افزونه آن به این معنی است که می تواند کارهای بیشتری انجام دهد … مانند تدوین .scss
پرونده ها بدون نیاز به استفاده از کامپایلر Sass.
این آموزش توضیح می دهد که چگونه یک پیش پردازنده CSS سفارشی ایجاد کنیم که نحو Sass را کامپایل کند و آن را با ویژگی های دیگر تکمیل کند. برای هرکسی با نیازهای خاص CSS که کمی Node.js را می شناسد ایده آل است.
شروع سریع
نمونه ای از پروژه PostCSS را می توان از آن شبیه سازی کرد GitHub. به Node.js نیاز دارد ، بنابراین اجرا کنید npm install
برای به دست آوردن تمام وابستگی ها.
تظاهرات را تدوین کنید src/scss/main.scss
کد منبع به build/css/main.css
استفاده كردن:
npm run css:dev
هر زمان که پرونده ها تغییر می کنند با استفاده از کامپایل خودکار:
npm run css:watch
سپس با فشار دادن از تماشا خارج شوید Ctrl | Cmd + ج در ترمینال
هر دو گزینه همچنین یک نقشه منبع در ایجاد می کنند build/css/main.css.map
، که به فایلهای منبع اصلی در ابزارهای توسعه دهنده مراجعه می کند.
CSS کوچک شده در سطح تولید بدون نقشه منبع با استفاده از:
npm run css:build
رجوع به README.md
پرونده برای اطلاعات بیشتر
آیا باید Sass را با PostCSS جایگزین کنید؟
کامپایلر Sass مشکلی ندارد ، اما عوامل زیر را در نظر بگیرید.
وابستگی های ماژول
آخرین نسخه دارت Sass را می توان با استفاده از Node.js به صورت جهانی نصب کرد npm
مدیر بسته:
npm install -g sass
ساس را کامپایل کنید .scss
کد با:
sass [input.scss] [output.css]
نقشه های منبع به طور خودکار تولید می شوند (--no-source-map
آنها را خاموش خواهد کرد) یا --watch
وقتی فایلها تغییر می کنند می توانند به کامپایل خودکار اضافه شوند.
آخرین نسخه Sass به کمتر از 5 مگابایت فضای نصب نیاز دارد.
PostCSS باید به منابع کمتری و یک کامپایلر اصلی مانند Sass با پیشوند خودکار نیاز دارد و کوچک سازی به کمتر از 1 مگابایت فضا نیاز دارد. در واقعیت ، شما node_modules
پوشه به بیش از 60 مگابایت گسترش یافته و با افزودن افزونه های بیشتر به سرعت افزایش می یابد. این بیشتر است npm
نصب سایر وابستگی ها. حتی اگر PostCSS از آنها استفاده نكند ، نمی توان آن را به عنوان یك گزینه سبك در نظر گرفت.
با این حال ، اگر قبلاً از PostCSS برای Autofrefixer یا اهداف دیگر استفاده می کنید ، ممکن است نیازی به Sass نباشد.
سرعت پردازش
کامپایلر آهسته و مبتنی بر یاقوت ساس مدت زیادی است که از بین رفته است و آخرین نسخه از یک کامپایلر استفاده می کند دارت زمان اجرا سریع است
PostCSS خالص جاوا اسکریپت است و اگرچه معیارها متفاوت خواهند بود ، اما در تدوین کد منبع مشابه سه برابر کندتر می شود.
با این حال ، اگر در حال حاضر PostCSS را بعد از Sass اجرا می کنید ، این اختلاف سرعت کمتر محسوس خواهد بود. یک فرآیند دو مرحله ای می تواند کندتر از استفاده از PostCSS به تنهایی باشد ، زیرا بیشتر کارهای آن شامل توکن سازی خواص CSS است.
سفارشی سازی
زبان Sass شامل مجموعه ای گسترده از ویژگی ها از جمله متغیرها ، تودرتو ، جزئیات ، مخلوط ها و موارد دیگر است. موارد منفی وجود دارد:
-
به راحتی نمی توانید ویژگی های جدید اضافه کنید.
شاید شما می خواهید گزینه ای برای تبدیل رنگ های HSLA به RGB باشد. ممکن است نوشتن یک تابع سفارشی امکان پذیر باشد ، اما سایر الزامات غیرممکن است – مانند خط کشی SVG به عنوان تصویر پس زمینه.
-
به راحتی نمی توانید مجموعه ویژگی ها را محدود کنید.
شاید شما ترجیح می دهید تیم شما از لانه سازی یا
@extend
. قوانین پر کردن به شما کمک خواهد کرد ، اما معتبر بودن تنظیم Sass را متوقف نمی کند.scss
فایل ها.
PostCSS قابل تنظیم تر است.
PostCSS به تنهایی کاری از پیش نمی برد. قابلیت پردازش به یک یا چند مورد نیاز دارد بسیاری از پلاگین های موجود. بیشتر آنها یک کار را انجام می دهند ، بنابراین اگر نمی خواهید لانه سازی کنید ، یک پلاگین nesting اضافه نکنید. در صورت لزوم می توانید پلاگین های خود را بنویسید در یک ماژول استاندارد JavaScript که می تواند قدرت Node.js را مهار کند.
PostCSS را نصب کنید
از PostCSS می توان با استفاده کرد webpack ، Parcel ، Gulp.js و سایر ابزارهای ساخت، اما این آموزش نحوه اجرای آن را از خط فرمان نشان می دهد.
در صورت لزوم ، یک پروژه جدید Node.js را با آن مقداردهی اولیه کنید npm init
. با نصب ماژول های زیر برای basic PostCSS را تنظیم کنید .scss
تجزیه با افزونه ها برای جزئیات ، متغیرها ، mixins ، تودرتو و پیشوند خودکار:
npm install --save-dev postcss postcss-cli postcss-scss postcss-advanced-variables postcss-nested autoprefixer
مانند پروژه نمونه، PostCSS و پلاگین های آن به صورت محلی نصب می شوند. اگر به احتمال زیاد پروژه های شما از نظر تنظیمات متفاوت باشند ، این یک گزینه عملی است.
توجه: PostCSS فقط از طریق یک فایل JavaScript قابل اجرا است اما postcss-cli
ماژول یک لفافه فراهم می کند که می توان آن را از خط فرمان فراخوانی کرد. postcss-scss ماژول اجازه می دهد تا PostCSS را بخواند .scss
پرونده ها را تغییر نمی دهد.
پیکربندی خودکار اصلاح
استفاده از پیش تصحیح خودکار لیست مرورگرها برای تعیین پیشوندهای فروشنده با توجه به لیست مرورگرهای پشتیبانی شده شما ، لازم است. ساده ترین تعریف این لیست به صورت a "browserslist"
آرایه در package.json
. مثال زیر پیشوندهای فروشنده را اضافه می کند که هر مرورگری حداقل 2٪ سهم بازار داشته باشد:
"browserslist": [
"> 2%"
],
اولین ساخت شما
شما به طور معمول یک ریشه Sass دارید .scss
پرونده ای که تمام پرونده های جزئی / م componentلفه مورد نیاز را وارد می کند. مثلا:
// root Sass file
// src/scss/main.scss
@import '_variables';
@import '_reset';
@import 'components/_card';
// etc.
تدوین را می توان با دویدن شروع کرد npx postcss
، به دنبال فایل ورودی ، یک --output
پرونده ، و هر گزینه مورد نیاز مثلا:
npx postcss ./src/scss/main.scss
--output ./build/css/main.css
--env development
--map
--verbose
--parser postcss-scss
--use postcss-advanced-variables postcss-nested autoprefixer
این دستور:
- تجزیه
./src/scss/main.scss
- خروجی به
./build/css/main.css
- تنظیم می کند
NODE_ENV
متغیر محیط بهdevelopment
- یک فایل نقشه منبع خارجی را خروجی می دهد
- پیام های خروجی و خطا را تنظیم می کند
- تنظیم می کند
postcss-scss
تجزیه کننده ساس ، و - از افزونه ها استفاده می کند
postcss-advanced-variables
،postcss-nested
، وautoprefixer
برای مدیریت جزئیات ، متغیرها ، mixins ، تودرتو و پیشوند خودکار
در صورت تمایل ، می توانید اضافه کنید --watch
برای کامپایل خودکار هنگامی که .scss
پرونده ها اصلاح می شوند.
ادامه مطالعه نحوه استفاده از PostCSS به عنوان یک گزینه قابل تنظیم برای Sass در SitePoint.