Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cancerberosgx/minify-fast
Minify a js file very fast by just removing spaces
https://github.com/cancerberosgx/minify-fast
Last synced: about 1 month ago
JSON representation
Minify a js file very fast by just removing spaces
- Host: GitHub
- URL: https://github.com/cancerberosgx/minify-fast
- Owner: cancerberoSgx
- License: mit
- Created: 2018-06-26T08:23:06.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-07-14T15:22:04.000Z (over 6 years ago)
- Last Synced: 2024-10-11T04:50:16.474Z (2 months ago)
- Language: TypeScript
- Size: 19.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Minify a JavaScript file very fast
This package focus on providing space / comment removal from JavaScript code as fast as possible. No mangling, just spaces / comment removal
For those special situations in which a very large file full minification using uglify takes too long to execute.
When you need an intermediate stage before real production and very large files are involved...
Technologies used: By default it will use [esprima](http://esprima.readthedocs.io) parser and [escodegen](https://github.com/estools/estraverse) code generatorbut it can be configured to use [acorn](https://github.com/acornjs/acorn/) parser and [astring](https://github.com/davidbonnet/astring) code generator .
# CLI
```sh
npm install -g minify-fast
minify-fast --input src/**/*.js # will modify files in src !
minify-fast --input src/**/*.js --output out# minify two input globs but this time using acorn parser and dump some debug information:
minify-fast --input dist/**/*.js --input dist-umd/**/*.js --parser acorn --generator astring --debug
```## node.js API
```sh
npm install --save-dev minify-fast
``````js
var minify = require('minify-fast')
// Or if using ES modules / TypeScript
// import minify from 'minify-fast'const code = `
let a = [1 , 2, 3];
const b = a.map (n => n * 2) /*hello */
console.log(a, b)
`
console.log(minify({code}))
// let a=[1,2,3];const b=a.map(n=>n*2);console.log(a,b)
```By default it will use [acorn](https://github.com/acornjs/acorn/) parser and [astring](https://github.com/davidbonnet/astring) code generator but it can be configured to use [esprima] parser and [escodegen](https://github.com/estools/estraverse) code generator.
# TODO
* error handling
* generator astring not minifying
* support typescript : https://github.com/eslint/typescript-eslint-parser ? mmm we still need a generator right ?
* another parser : https://github.com/eslint/espree
* input CLI verification for --parser, --generator, etc and fail OK
* benchmarks to compare parsers and generators and against real minifiers like google-closure-compiler / uglify
* sourcemaps ? test if / how affects performance
* preserve comments ?
* jsx ?