Minifier ng JS

5 sa 2 mga rating

Ang Minifier ng JS ay isang libreng tool na nag-aalis ng mga hindi kailangang character sa JavaScript at ipinapakita ang bilang ng character bago at pagkatapos ng minification.

Anong problema ang nalulutas ng JavaScript minification?

Binabawasan ng JavaScript minification ang dami ng source text na kailangang i-download ng browser. Karaniwan nitong inaalis ang formatting gaya ng indentation, mga line break, at mga espasyong hindi kailangan sa syntax ng JavaScript.

Maaaring mabawasan ng mas maliit na script ang laki ng inililipat na file at ang gawaing kailangan sa pag-parse, lalo na kung maraming malalaking bundle ang ipinapadala ng isang site. Mahalaga pa rin ang HTTP compression gaya ng Brotli o gzip dahil magkaibang bahagi ng problema ang nilulutas ng minification at transfer compression. Nag-aalis ang minification ng mga character sa source, samantalang mas compact na ine-encode ng compression ang paulit-ulit na data habang inililipat ito.

Karaniwang ginagawa ang prosesong ito sa build bago ang deployment. Kapaki-pakinabang din ito kapag sinusuri ang isang hindi pa na-minify na third-party script, naghahambing ng laki ng mga bundle, o naghahanda ng standalone file para sa site na walang build pipeline.

Hindi pinatutunayan ng minification na tama ang paggana ng JavaScript. Maaaring matagumpay na ma-minify ang isang script kahit may mali itong mga API call, hindi naa-access na variable, o code na pumapalya lamang sa runtime.

Paano gamitin ang Minifier ng JS?

I-paste ang JavaScript sa field na JS at patakbuhin ang tool, pagkatapos ay kopyahin ang value na lumabas sa Minified JS. Panatilihin sa version control ang orihinal na source file at i-deploy ang compact na kopya sa halip na palitan ang nababasang source.

  1. Magpatakbo muna ng syntax check, linter, at mga automated test sa source code.
  2. I-paste sa JS ang buong script, kasama ang anumang module import o wrapper function na bahagi ng file.
  3. Tingnan ang JS characters at Minified JS characters para makita ang pagbabago sa bilang ng character.
  4. Subukang patakbuhin ang na-minify na JavaScript sa parehong browser at deployment context na gagamitin ng production file upang matiyak na gumagana ito nang tama.
  5. Gumamit ng madaling makilalang filename gaya ng app.min.js kung magkasamang ise-save ang na-minify at nababasang bersyon.

Sa server isinasagawa ang proseso. Ipinapadala sa server ang iyong input sa pamamagitan ng HTTPS at hindi ito sine-save. Kailangan pa ring matanggap ng server ang JavaScript para maproseso ito, kaya huwag magsumite ng source na ipinagbabawal ng iyong organisasyong ipadala sa isang external service.

Ano ang nilalaman ng na-minify na resulta?

Nasa resulta ang compact na JavaScript at dalawang bilang ng character. Ang JS characters ang haba ng input, samantalang ang Minified JS characters ang haba ng ibinalik na Minified JS.

Kinukuha ang mga bilang gamit ang mb_strlen function ng PHP, na sumusukat sa haba ng multibyte string sa halip na bilangin lamang ang mga byte. Dahil dito, hindi katumbas ng panghuling laki ng network transfer ang bilang ng character. Maaaring gumamit ng higit sa isang byte ang mga UTF-8 character, at maaari pang paliitin ng gzip o Brotli ang ipinapadalang file.

Walang hiwalay na validation o diagnostic field na ibinabalik ang tool na ito. Huwag asahang matutukoy nito ang bawat nawawalang bracket, maling regular expression, o hindi suportadong language feature. Hindi rin maaasahang pagsusuri sa JavaScript ang mga error na nauugnay sa JSON, gaya ng mga property name na walang panipi o trailing comma, dahil magkaiba ang object literal syntax ng JavaScript at ang syntax ng JSON. Gamitin ang Tagapagpatunay at pampaganda ng JSON para sa JSON data.

Maliliit na halimbawa at maselang input

Narito ang isang simpleng halimbawa ng pagbabago sa spacing.

Input

function add(a, b) { return a + b; }

Compact form

function add(a,b){return a+b;}

Maaari ring alisin ang formatting sa paligid ng isang object nang hindi binabago ang mga value ng mga property nito.

Input

const settings = { theme: "dark", retries: 2 };

Compact form

const settings={theme:"dark",retries:2};

Maaaring mag-iba ang eksaktong formatting sa bawat minifier, lalo na sa mga opsyonal na semicolon. Hindi ligtas na gawing compact ang JavaScript sa pamamagitan lamang ng pagbura sa lahat ng espasyo o line break. Kailangang isaalang-alang ng ligtas na minification ang lexical at syntactic context upang matukoy kung alin ang formatting lamang at kung aling mga character ang nakaaapekto sa program.

  • Mga espasyo sa string ay data. Kailangang manatili ang espasyo sa "Newcastle upon Tyne".
  • Bantas ay maaaring bahagi ng syntax. Kapag inalis ang espasyo sa a + +b, maaaring makabuo ito ng ibang pagkakasunod-sunod ng token.
  • Mga line break ay nakaaapekto kung minsan sa automatic semicolon insertion, kabilang ang code pagkatapos ng return, break, o continue. Hindi pinapayagan ang line break kaagad pagkatapos ng throw dahil kailangang magsimula sa parehong linya ang expression nito.
  • Mga accented at non-Latin na character ay maaaring lumabas sa mga string at, kung pinapayagan ng mga panuntunan sa JavaScript identifier, sa mga identifier. Maaaring iba ang laki ng mga ito sa byte kumpara sa bilang ng character.
  • Mga numero ay mga source token, hindi tagubilin sa pagbilang ng character. Kailangang mapanatili ng minifier ang numerikal na kahulugan ng mga ito kahit gumamit ito ng mas maikling katumbas na notation.

Kailan hindi sulit i-minify ang JavaScript?

Karaniwang hindi sulit ulitin ang minification kung na-minify na ang file. Maaaring kaunti lamang o walang mabawas sa ikalawang proseso, habang nagiging mas mahirap tunton ang build output at posibleng maapektuhan ang mga kasalukuyang source map.

Wala ring gaanong dahilan para i-prettify at pagkatapos ay i-minify ang JavaScript na machine lamang ang babasa. Panatilihin ang source na madaling basahin ng tao para sa maintenance at mula rito likhain ang mga deployment artefact. Para sa isang matagal nang application, karaniwang mas angkop ang build tool gaya ng esbuild, Rollup, o webpack dahil maaari nitong i-automate ang module bundling at pagbuo ng source map. Maaaring built in ang minification o idagdag sa pamamagitan ng configuration o plugin, samantalang ang Terser ay isang nakalaang minifier.

Huwag ituring ang minification bilang obfuscation o access control. Maaaring manatiling nakikita ang mga pangalan ng function at variable, nababasa pa rin ang mga string literal, at kayang i-reformat ng browser developer tools ang compact na code. Huwag kailanman maglagay ng mga secret, private key, at privileged credential sa client-side JavaScript.

Kung inihahanda mo ang lahat ng static asset ng isang page, magagamit ang Minifier ng CSS at HTML minifier para gawin ang katumbas na proseso sa mga format na iyon. Gamitin ang hiwalay na tool para sa bawat format dahil magkakaiba ang mga panuntunan ng mga ito sa parsing at whitespace.

Mga madalas itanong

Gumagawa ba ang tool ng source map?

Walang ibinabalik na source-map field. Kung kailangan mong itugma ang production stack trace sa mga orihinal na file, buuin ang na-minify na script at ang katugma nitong .map file sa iisang build process. Kapag nag-deploy ng source map mula sa ibang build, maaaring maging mali o mapanlinlang ang mga reference sa linya at column.

Mapipigilan ba ng minification ang pagkopya sa JavaScript ko?

Hindi. Kailangang matanggap ng browser ang naipapatupad na client-side code, kaya mada-download at masusuri ito ng bisita. Pinahihirap lamang basahin ng minification ang source. Hindi ito nagbibigay ng confidentiality, pagpapatupad ng lisensya, o makabuluhang proteksyon sa mga nakapaloob na secret.

Puwede bang mag-paste ng code na may mga API key?

Huwag mag-paste ng mga secret API key, token, o pribadong credential. Ipinapadala ang input sa pamamagitan ng HTTPS at hindi ito sine-save, ngunit sa server isinasagawa ang pagproseso. Ang mga pampublikong browser key na sadyang ipinapamahagi sa bawat bisita ay kailangan pa ring lagyan ng mga paghihigpit sa domain, origin, quota, o pahintulot kung sinusuportahan ng kaukulang serbisyo ang mga ito.

Mas bibilis ba palagi ang pag-load ng page kapag mas kaunti ang character?

Hindi. Nakadepende ang epekto sa orihinal na laki ng file, caching, kondisyon ng koneksyon, server compression, at sa dami ng JavaScript na kailangang i-parse at patakbuhin ng browser. Suriin din ang compressed transfer size at runtime behaviour, hindi lamang ang kabuuang bilang ng character.

Dapat bang panatilihin ang .js extension pagkatapos mag-minify?

Oo. Karaniwang pinananatili ng na-minify na JavaScript ang .js extension, at ginagamit ang .min.js bilang naming convention kapag naroon ang parehong bersyon. Bago mag-deploy, tiyaking nagpapadala ang server ng angkop na JavaScript content type at nakaturo ang HTML o module import sa tamang file.

Katulad na mga kasangkapan

HTML minifier

I-minify ang iyong HTML sa pamamagitan ng pag-alis ng lahat ng hindi kinakailangang karakter.

5,049
47
Minifier ng CSS

I-minify ang iyong CSS sa pamamagitan ng pag-alis ng lahat ng hindi kinakailangang karakter.

4,599
29

Mga sikat na tool