improve build times by extracting asset opt into its own crate (#3273)
* improve build types by extracing asset opt as a dylib * dont use dylib, but let regular workspace caching do the heavy lifting * add prebuild to cli for better lock contention * hoist deps * disable slow tests * re-enable sequential, debug=0 for dev * use vfs for windows * dont cache on failure, fix windows vfs caceh * free disk space re-order * add clippy + fmt to windows channel * yoink makefile * proper rustfmt/clippy on toolchain * set incremental to zero since cargo-cache disables it
This commit is contained in:
1 parent
79a2f023e7
commit
1cbfcde6cd
25 files changed
+550
-554
No files matched your search
@@ -0,0 +1,42 @@
|
||||
use std::path::Path;
|
||||
|
||||
use anyhow::Context;
|
||||
use lightningcss::{
|
||||
printer::PrinterOptions,
|
||||
stylesheet::{MinifyOptions, ParserOptions, StyleSheet},
|
||||
};
|
||||
use manganis_core::CssAssetOptions;
|
||||
|
||||
pub(crate) fn process_css(
|
||||
css_options: &CssAssetOptions,
|
||||
source: &Path,
|
||||
output_path: &Path,
|
||||
) -> anyhow::Result<()> {
|
||||
let css = std::fs::read_to_string(source)?;
|
||||
|
||||
let css = if css_options.minified() {
|
||||
minify_css(&css)
|
||||
} else {
|
||||
css
|
||||
};
|
||||
|
||||
std::fs::write(output_path, css).with_context(|| {
|
||||
format!(
|
||||
"Failed to write css to output location: {}",
|
||||
output_path.display()
|
||||
)
|
||||
})?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub(crate) fn minify_css(css: &str) -> String {
|
||||
let mut stylesheet = StyleSheet::parse(css, ParserOptions::default()).unwrap();
|
||||
stylesheet.minify(MinifyOptions::default()).unwrap();
|
||||
let printer = PrinterOptions {
|
||||
minify: true,
|
||||
..Default::default()
|
||||
};
|
||||
let res = stylesheet.to_css(printer).unwrap();
|
||||
res.code
|
||||
}
|
||||
Reference in new issue
Block a user