| const css = require('./'); |
| const cssnano = require('cssnano'); |
| const postcss = require('postcss'); |
| const esbuild = require('esbuild'); |
| |
| let opts = { |
| filename: process.argv[process.argv.length - 1], |
| code: require('fs').readFileSync(process.argv[process.argv.length - 1]), |
| minify: true, |
| // source_map: true, |
| targets: { |
| chrome: 95 << 16 |
| } |
| }; |
| |
| async function run() { |
| await doCssNano(); |
| |
| console.time('esbuild'); |
| let r = await esbuild.transform(opts.code.toString(), { |
| sourcefile: opts.filename, |
| loader: 'css', |
| minify: true |
| }); |
| console.timeEnd('esbuild'); |
| console.log(r.code.length + ' bytes'); |
| console.log(''); |
| |
| console.time('lightningcss'); |
| let res = css.transform(opts); |
| console.timeEnd('lightningcss'); |
| console.log(res.code.length + ' bytes'); |
| } |
| |
| async function doCssNano() { |
| console.time('cssnano'); |
| const result = await postcss([ |
| cssnano, |
| ]).process(opts.code, {from: opts.filename}); |
| console.timeEnd('cssnano'); |
| console.log(result.css.length + ' bytes'); |
| console.log(''); |
| } |
| |
| run(); |