Babel is very flexible and supports ES5. But it is slow. ESBuild is a good alternative and maybe a dozen times faster
Vite is a great option, it is based on ESBuild and Rollup on production and has a new approach with nearly zero-time bundling on development (actually no bundling on development)
Consider dropping SASS preprocessor
Many things CSS preprocessors were used for are not relevant now. Modern CSS has modules, custom properties (aka CSS Variables), functions, calc, and even CSS Nesting. To support older browsers we can use PostCSS-Preset-Env. I believe, nowadays the main purpose of using SASS is making a very flexible reusable CSS, like CSS frameworks with grids and utils generations, plugins and etc.
Why use PostCSS processing instead of css preprocessor?
CSS is a web standard, we can follow standards
Some features are supported already by most browsers natively
How to use GitHub
Is your feature request related to a problem? Please describe.
The current production build is:
Describe the solution you'd like
Do not make unnecessary browser compatibility
Use modern bundling and transpiring tools
Babel is very flexible and supports ES5. But it is slow. ESBuild is a good alternative and maybe a dozen times faster
Vite is a great option, it is based on ESBuild and Rollup on production and has a new approach with nearly zero-time bundling on development (actually no bundling on development)
Consider dropping SASS preprocessor
Many things CSS preprocessors were used for are not relevant now. Modern CSS has modules, custom properties (aka CSS Variables), functions,
calc
, and even CSS Nesting. To support older browsers we can use PostCSS-Preset-Env. I believe, nowadays the main purpose of using SASS is making a very flexible reusable CSS, like CSS frameworks with grids and utils generations, plugins and etc.Why use PostCSS processing instead of css preprocessor?
Missing feature
The only missing feature is nesting with adding suffixes like
But on the other hand, this adding suffices it's harder to find a style rule by class because there is no
message__part
in the source.