Josee9988 / MinifyAll

A 𝗩𝗦𝗖𝗼𝗱𝗲 𝗺𝗢𝗻𝗢𝗳𝗢𝗲𝗿 for JS, JSON/C, CSS, and HTML, you will love its simplicity! 🌟 π˜Ύπ™€π™’π™₯π™§π™šπ™¨π™¨ and π™œπ™―π™žπ™₯ files and folders πŸ“¦ Reduce your bundle and file sizes with lightning speed ⚑
https://minifyall.jgracia.es/
GNU General Public License v3.0
73 stars 13 forks source link
css extension json minification minifier minify minify-css minify-html minify-javascript minify-js minifying-files minimization typescript uglification uglifier visual-studio-code vscode vscode-extension vscode-extensions vscode-plugin

MinifyAll an extension for VS Code

Simple VS Code minifier and compressor for most common file types (See full list below). You will love its simplicity!

You can minify the file and replace all the content with the new minified text, or you can preserve the original document and get the minified text in another document! Also, you can simply minify your selected text, you can preserve your licence comments with the tags @preserve and @endpreserve.

MinifyAll is also able to compress files and folders simply by right-clicking them on the menu.

Go to the extension settings and make it as you want, enable or disable: minify on save, languages, hexadecimal shortener, messages, and much more.

For more information check our: GitHub repository, VisualStudio Marketplace or OpenVSX registry.

Also check the brand new MinifyAll online webpage 😎 or the MinifyAllCli/package.

Do you want to help us improve the extension or did you found a bug? Let us know.

Check our CHANGELOG.

Currently looking for active contributors to maintain and keep the project alive.

We support up to 14 languages/file extensions!


Version Downloads Rating GitHub commit activity CI


Installation πŸ”©βš™

Commands πŸ“πŸ›‘

We recommend using them with: "left click" on the document and then select the option you want, either the file in the menu or the opened file. ;)


How does it look with real code? πŸ“Έ 😁

command preserve license preview preview2nd selectedText rightclickMenu rightclickInAction compressfiles

Languages available πŸ§ͺπŸ”₯


Configuration settings βš™οΈβ›“

Click to see more info about the configuration settings (Remember to restart VS Code after modifying any configuration) - If you want MinifyAll to **stop shortening colours**, such as RGB to 3 digit hex, or RGBA to hex, or 6 digit hex to 3 digit hex. If you enable it you might see some loss in colour accuracy ``` json "MinifyAll.disableHexadecimalShortener": true|false //default 'true' (by default it is disabled) ``` - Disables warning and information messages ``` json "MinifyAll.disableMessages": true|false //default 'false' (by default it is allowed) ``` - Disables context menu when right-clicking in your code. ``` json "MinifyAll.disableCodeContextMenu": true|false //default 'false' (by default it is shown) ``` - Disables context menu when right-clicking in the file explorer. ``` json "MinifyAll.disableFileExplorerContextMenu": true|false //default 'false' (by default it is shown) ``` - Minify on save (Default command, which will minify your actual code) ``` json "MinifyAll.minifyOnSave": true|false //default 'false' (by default it is disabled) ``` - Minify on save (Second command, which will minify your actual code into a new file) ``` json "MinifyAll.minifyOnSaveToNewFile": true|false //default 'false' (by default it is disabled) ``` - Prefix of the new minified file from the command that minifies to other doc. ``` json "MinifyAll.PrefixOfNewMinifiedFiles": '-min'|'.min'|'-minified'|'.minified' //default '-min' ``` - If you want MinifyAll to open the new minified document after you minify. (False for not opening it every time you create a minified file). ``` json "MinifyAll.openMinifiedDocument": true|false //default 'true' ``` - Terser minify options, this setting will allow you to fully customize your Terser behaviour. For more info please check [terser's minify options](https://github.com/terser/terser#minify-options). ``` json "MinifyAll.terserMinifyOptions": { "mangle": true, "compress": { "drop_console": true, "dead_code": false, "keep_fnames": false, "keep_classnames": false } } // for more information please visit https://github.com/terser/terser#minify-options ``` ### **Disabling languages configuration** - Disables **HTML** minimization ``` json "MinifyAll.disableHtml": true|false //default 'false' (by default it is enabled) ``` - Disables **TWIG** minimization ``` json "MinifyAll.disableTwig": true|false //default 'false' (by default it is enabled) ``` - Disables **PHP** minimization ``` json "MinifyAll.disablePhp": true|false //default 'false' (by default it is enabled) ``` - Disables **CSS** minimization ``` json "MinifyAll.disableCss": true|false //default 'false' (by default it is enabled) ``` - Disables **SCSS** minimization ``` json "MinifyAll.disableScss": true|false //default 'false' (by default it is enabled) ``` - Disables **LESS** minimization ``` json "MinifyAll.disableLess": true|false //default 'false' (by default it is enabled) ``` - Disables **SASS** minimization ``` json "MinifyAll.disableSass": true|false //default 'false' (by default it is enabled) ``` - Disables **JSON** minimization ``` json "MinifyAll.disableJson": true|false //default 'false' (by default it is enabled) ``` - Disables **JSONC** minimization ``` json "MinifyAll.disableJsonc": true|false //default 'false' (by default it is enabled) ``` - Disables **JavaScript** minimization //default 'true' (by default it is disabled because it is not on a stable version yet) ``` json "MinifyAll.disableJavascript": true|false //default 'false' (by default it is enabled) ``` - Disables **JavaScriptReact** minimization //default 'true' (by default it is disabled because it is not on a stable version yet) ``` json "MinifyAll.disableJavascriptReact": true|false //default 'true' (by default it is enabled) ``` - Disables **XML** minimization //default 'false' ``` json "MinifyAll.disableXml": true|false //default 'false' ```

Examples

CSS LESS SASS SCSS

Click to see an example of how the extension minifies CSS *From:* ```css .myClass { background-color: rgba(12, 12, 12, 0.8); background-color: rgb(12, 12, 12); background-color: #FAFAFA; /*other comment*/ content: url("https://github.com/Josee9988/MinifyAll"); margin-right: 0px; }/* my comment */ ``` *To:* ```css .myClass{background-color:#0C0C0CCC;background-color:#111;background-color:#FFF;content:url("https://github.com/Josee9988/MinifyAll");margin-right:0} ``` - RGBA is formatted to hexadecimal. - RGB is formatted to 3 digit value hexadecimal. - 6 digit hexadecimal values are formatted to 3 digit value hexadecimal. - There are no spaces. - There is only one line. - Multiline comments removed. - URL '//' is not detected as a comment and can be perfectly placed. - From 0px to 0 ---

JSON JSON

Click to see an example of how the extension minifies JSON *From:* ``` json { "contributes": { "commands": [{ "title": "Minify this document ⚑", }, { "color": "#FAFAFA", // comments }/* multiline comment */ ] } } ``` *To:* ``` json {"contributes":{"commands":[{"title":"Minify this document ⚑"},{"color":"#FFF"}]}} ``` - Only one line. - No unnecessary spaces. - 6 Digit hex to 3 digit hex. - No single-line comments. - No multiline comments. - Removed trailing comma before '}'. ---

JavaScript

Click to see an example of how the extension minifies JavaScript *From:* ```javascript "use strict"; const { commands, window } = require('vscode'); const FileSaver = require('fs') const StringWithComments = "// not a comment /*" //this is my comment if ((window.activeTextEditor.document.languageId == "css" && disableCss == false) || //myComment (window.activeTextEditor.document.languageId == "scss" && disableScss == false)) { const { document } = window.activeTextEditor; switch (window.activeTextEditor.document.languageId) { case "css": /* multi-line comments */ console.log("Love this minifier !!!") break; default: break; } } ``` *To:* ```javascript "use strict";const{commands,window}=require('vscode');const FileSaver=require('fs') const StringWithComments="// not a comment /*" if((window.activeTextEditor.document.languageId=="css"&&disableCss==false)||(window.activeTextEditor.document.languageId=="scss"&&disableScss==false)){const{document}=window.activeTextEditor;switch(window.activeTextEditor.document.languageId){case"css":console.log("Love this minifier !!!") break;default:break;}}let myString="hello//";myString.replace(/\/\//g,''); ``` - Only changes line if, at the end of a declaration or an import, that line does not end in ';' (So adding more ';' at the end of every line will help you minimize more your code). - All irrelevant spaces removed. - Spaces left are only within quotes (Strings) and variable declarations. - If 'OR' and 'AND' are without spaces, the same as if condition or switch cases. - All single line and multiline comments removed. - Single line comments inside a String will not be removed. (hello//) (// not a comment). - Multi-line comments inside a String will not be removed. (// not a comment **/\***). - Regex expression with single-line comments will not be removed. - No tabs. ---

HTML

Click to see an example of how the extension minifies HTML *From:* ```html ``` *To:* ```html ``` - Only one line. - Only the necessary spaces. - No tabs. - No single-line comments. - No multiline comments. ---

Known bugs: πŸ›‘πŸ—‘


πŸ₯° Donators

Support the project and be the first donator ❀️


πŸŽ‰ Did you enjoyed the minifier? Help us raise these numbers up

GitHub followers GitHub stars GitHub watchers GitHub forks Sponsor

Check my VS Code theme 🧲

Check my VS Code Markdown and Changelog snippets 🌟

Check my MinifyAll online webpage 😎

Check my MinifyAllCli/package


πŸ“š Posts where MinifyAll is mentioned


⚠️Remember that this extension does not guarantee 100% effectiveness and may have some issue at some point. Use it at your own risk and always do backups of your code.⚠️

Made with a lot of ❀️❀️ by @Josee9988