goalup-minify v1.3.0
What is goalup-minify?
This tool creates Production-ready code in just 1 command. It runs popular tools (gulp, etc.) underneath to compress JS, CSS, HTML and Images. Note: This is not a bundler. In a nutshell, files are individually processed and output to /public directory. goalup-minify is purposed for static websites if no bundler / build tool is integrated in your project.
You can also inline your compressed assets in html by passing inline attribute to the link, img and script tags.
Check Ongoing section for more details.
Installation:
npm install -g goalup-minifyGetting Started:
goalup-minify [options]- Example:
1. Copy
/examplesdirectory to some folder 2. Rungoalup-minifyinside/examples. 3./public(default name) folder is generated with your minified resources, in the working directory. 4. Note: You can rungoalup-minifyanywhere, however, rem. that paths are relative to directory where this command is run.
Options:
goalup-minify --help to list all the options
Example Commands:
Note: Paths in options are relative to working directory
- Compress only the listed files.
/publicis default output directory.
goalup-minify -o hello.js index.js world.css
- Creates
distas output folder if doesn't exist. Compress alljs_folder/**/**.jsfiles present in the listed path.
goalup-minify --js ./js_folder -d ./dist
- Compress
jsfiles in the path and all**/**.+(css|scss|stylus) files. It ignores all the files in excluded list if present in the aforementioned paths.
goalup-minify --js ./js_folder --style -x .js_folder/touch_me_not.js .js_folder/touch_me_not.css
Note:
--watch option is used in development environment where compressing assets is not required. Therefore, it's not part of plan as of now. However, it can be added on request, to achieve completeness and avoid setup of any additional toolchains. This might be required if someone is serving assets from /public directory using local server and not /src.
Ongoing development:
- To support
--excludeoption. - To support
--onlyoption. - Validate arguments. To not allowing multiple arguments for any option. Also,
--destcannot be same as the working directory. [CUZ THAT'S UNSAFE] Add font-icons support(Read this!)
Further plans:
- Parse .html files and add file name hashing for linked .js and .css files. (--hashing as option). This helps in browser caching
- Allow configurations for htmlmin, uglifyJS, etc. By default standard and lenient rules are added, however, custom support can be added on request.
- Can add lint rules for js and css on request.
- Create a boilerplate for static websites using CLI. (Internally would use
goalup-minifyas build tool).
TODO
- Support es6 for goalup lib for ease of development (Currently, not required as it's a V. simple tool) ;)