javascript編譯壓縮

javascript編譯

js是JavaScript 源碼文件, .min.js是壓縮版的js文件。
.min.js文件經過壓縮,相對編譯前的js文件體積較小,傳輸效率快。經過編碼將變量和函數原命名改為毫無意義的命名,以防止他人窺視和竊取 js 源代碼

在線版

github

安裝

npm install uglify-js -g

編譯源碼

uglifyjs Three.es.js -c --toplevel -o Three.es.min.js

選項

  -h, --help                  列出使用指南。`--help options` 獲取可用選項的詳情。-V, --version               打印版本號。-p, --parse <options>       指定解析器配置選項:`acorn`  使用 Acorn 來解析。`bare_returns`  允許在函數外return。在壓縮CommonJS模塊或`.user.js `引擎調用被同步執行函數包裹的用戶腳本 時會用到。`expression`  不是解析文件,二是解析一段表達式 (例如解析JSON).`spidermonkey`  輸入文件是 SpiderMonkeyAST 格式 (JSON).-c, --compress [options]    啟用壓縮(true/false)/指定壓縮配置:`pure_funcs`  傳一個函數名的列表,當這些函數返回值沒被利用時,該函數會被安全移除。-m, --mangle [options]       啟用混淆(true/false)/指定混淆配置:`reserved`  不被混淆的名字列表。--mangle-props [options]    混淆屬性/指定壓縮配置:`builtins`  混淆那些與標準JS全局變量重復的名字。`debug`  添加debug前綴和后綴。`domprops`  混淆那些魚DOM屬性名重復的名字。`keep_quoted`  只混淆沒括起來的屬性名。`regex`  只混淆匹配(該正則)的名字。`reserved`  不需要混淆的名字的列表(即保留)。-b, --beautify [options]    是否美化輸出(true/false)/指定輸出配置:`beautify`  默認是啟用.`preamble`  預設的輸出文件頭部。你可以插入一段注釋,比如版權信息。它不會被解析,但sourcemap會因此調整。`quote_style`  括號類型:0 - auto自動1 - single單引號2 - double雙引號3 - original跟隨原碼`wrap_iife`  把立即執行函數括起來。注意:你或許應禁用壓縮配置中的`negate_iife`選項。 -o, --output <file>         輸出文件路徑 (默認 STDOUT). 指定 `ast` 或`spidermonkey`的話分別是輸出UglifyJS或SpiderMonkey AST。--comments [filter]         保留版權注釋。默認像Google Closure那樣,保留包含"@license"或"@preserve"這樣JSDoc風格的注釋。你可以傳以下的參數:- "all" 保留全部注釋- 一個合適的正則,如 `/foo/` 或 `/^!/`,保留匹配到的注釋。 注意,在啟用壓縮時,因為死代碼被移除或壓縮聲明為一行,并非*所有*的注釋都會被保留。--config-file <file>        從此JSON文件讀取 `minify()` 配置。-d, --define <expr>[=value] 定義全局變量。--ie8                       支持IE8。等同于在`minify()`的`compress`、 `mangle` 和 `output`配置設置`ie8: true`。UglifyJS不會默認兼容IE8。--keep-fnames               不要混淆、干掉的函數的名字。當代碼依賴Function.prototype.name時有用。--name-cache <file>         用來保存混淆map的文件。--self                      把UglifyJS本身也構建成一個依賴包(等同于`--wrap UglifyJS`)--source-map [options]      啟用 source map(true/false)/指定sourcemap配置:`base` 根路徑,用于計算輸入文件的相對路徑。`content`  輸入sourcemap。假如的你要編譯的JS是另外的源碼編譯出來的。假如該sourcemap包含在js內,請指定"inline"。 `filename`  輸出文件的名字或位置。`includeSources`  如果你要在sourcemap中加上源文件的內容作sourcesContent屬性,就傳這個參數吧。`root`  此路徑中的源碼編譯后會產生sourcemap.`url`   如果指定此值,會添加sourcemap相對路徑在`//#sourceMappingURL`中。--timings                   在STDERR顯示操作運行時間。--toplevel                  壓縮/混淆在最高作用域中聲明的變量名。--verbose                   打印診斷信息。--warn                      打印警告信息。--wrap <name>               把所有代碼包裹在一個大函數中。讓“exports”和“global”變量有效。你需要傳一個參數來指定此模塊的名字,以便瀏覽器引用。  

參考文檔

UglifyJS3中文文檔

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536023.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536023.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536023.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vscode設置中文

vscode設置中文 當我們安裝完成vscode后&#xff0c;會發現它是中文的&#xff0c;因為默認情況下&#xff0c;vscode使用的語言為英文(us)。 那很多同學是不喜歡英文的&#xff0c;不是看不懂&#xff0c;而是不方便哈。 修改語言配置文件 使用快捷鍵組合【CtrlShiftp】 在…

linux下編譯boost

linux下編譯boost 下載boot庫 官方下載地址 下載完成會解壓。 編譯 1.進入解壓后的文件夾內 cd boost_1_69_0 執行下面的語句 ./bootstrap.sh --with-librariesall --with-toolsetgcc–with-libraries 指定編譯哪些boost庫&#xff0c;all的話就是全部編譯&#xff0c;只想…

C++通過原子變量代替互斥量

C通過原子變量代替互斥量 廢話不多說&#xff0c;直接上代碼。 實現類似lock_guard功能 #include <atomic> #include <thread>class ClockGuard { public:ClockGuard(std::atomic_flag & atomic):m_lockedFlag(atomic){lock();}~ClockGuard(){unlock();}voi…

conky安裝配置

conky安裝配置 安裝conky sudo apt-get install conky-all修改配置 在主目錄下創建’.conkyrc’ 文件內容&#xff1a; # set to yes if you want Conky to be forked in the background background no cpu_avg_samples 2 net_avg_samples 2 out_to_console no # X font w…

Windows子系統安裝圖形界面

Windows子系統安裝圖形界面 有很多同學需要使用 linux 系統,但是又不想真正安裝一個 linux 系統。于是微軟大哥就把 ubuntu 系統集成到 windows 內了&#xff0c;你說 微軟 屌不屌&#xff1f; 言歸正傳。 安裝Xlaunch 因為這個是最靠譜的圖形化界面了&#xff0c;所以不解…

C++ 判斷類是否有某變量

C 判斷類是否有某變量 話不多說上代碼。 #define HAS_MEMBER(member)\template<typename T, typename... Args>struct has_member_##member\ {\private:\template<typename U> static auto Check(int) -> decltype(std::declval<U>().member(std::declv…

C++將地址轉換為字符串

C將地址轉換為字符串 有時候在做程序設計的時候&#xff0c;有可能需要做一個類似messageBus的功能&#xff0c;并且需要一個key保證唯一&#xff0c;那么如何實現這個key的唯一呢&#xff1f;大致兩種思路: 使用函數簽名&#xff0c;因為messagebus綁定的是一個函數&#xf…

Angular 8之升級和新功能摘要

Angular 8之升級和新功能摘要 Angular 8已經到來,并帶來了大量的工作流程和性能改進。就像我們之前發布的幾個版本一樣,讓我們回顧一下Angular 8的新功能,以及如何將Angular 7應用程序升級到Angular 8。 Angular 8中明顯的新功能數量有限,但確實還有一些好東西: Differen…

Linux下查看顯卡PCIE速率x16x8x4及設定

Linux下查看顯卡PCIE速率x16x8x4 由于linux軟件并不是很齊全所以查看顯卡占用PCIE的帶寬并不直觀&#xff0c;所以本文介紹如何查看。 Windows下使用GPU-Z即可查看 Linux 確定當前顯卡型號 lspci | grep NVIDIA返回 02:00.0 3D controller: NVIDIA Corporation GM107M [GeFor…

Deepin安裝最新顯卡RTX2080Ti及CUDA10.1

Deepin安裝最新顯卡RTX2080Ti及CUDA10.1 廢話不多說直接上教程。 本系統為Deepin 15.10.2&#xff0c;是基于debian 9發布的&#xff0c;不排除后續deepin升級為debian 10&#xff0c;就目前來看是和ubuntu 16.04一樣&#xff0c;使用的是debian 9&#xff0c;所以下載安裝包等…

Anaconda安裝Tensorflow環境

Anaconda安裝Tensorflow環境 Anaconda安裝 下載安裝包&#xff0c;請到這個地址下載 安裝 打開終端執行&#xff1a; bash Anaconda3-5.3.1-Linux-x86_64.sh安裝過程全部yes即可。 然后重新啟動。 驗證是否安裝成功 conda --version如果沒有報錯&#xff0c;并且輸出下面內容…

Windows下Qt Creator設置IDE菜單字體樣式

Windows下Qt Creator設置IDE菜單字體樣式 本文為解決以下問題&#xff1a; IDE的菜單字體太小IDE的菜單字體樣式&#xff0c;可以更換為微軟雅黑 創建樣式文件 在Qt Creator目錄下C:\Qt\Qt5.12.2創建 custom-style.css 文件&#xff0c;內容如下&#xff1a; QWidget { fo…

Clonezilla再生龍備份與還原linux系統

文章目錄Clonezilla再生龍備份與還原linux系統簡介功能與要求一、制作再生龍啟動盤1.下載鏡像2.制作啟動盤二、系統分區三、備份系統四、還原系統注意事項Clonezilla再生龍備份與還原linux系統 簡介 再生龍&#xff08;Clonezilla&#xff09;是一個免費的災難恢復、硬盤克隆…

ubuntu Qt Creator不能輸入中文

ubuntu Qt Creator不能輸入中文 解決方式為下面的腳本&#xff0c;如果你的Qt是安裝在根目錄下&#xff0c;那么需要加sudo&#xff0c;如果不是&#xff0c;直接運行即可 sudo bash ChineseInputForQt-v1.1.sh# 或者bash ChineseInputForQt-v1.1.sh腳本內容為&#xff1a; …

修改gitlab數據卷的位置

修改gitlab數據卷的位置 在使用docker安裝gitlab的時候&#xff0c;一開始沒有考慮其他事情&#xff0c;直接在本地創建了一個數據卷就掛載到容器上了&#xff0c;導致后續數據越來越多&#xff0c;想將數據放到其他盤&#xff0c;大致可以這樣操作。 1.停止容器 docker sto…

Angular安裝教程

Angular安裝 安裝node和npm 參考這篇文章安裝 https://blog.csdn.net/wf19930209/article/details/84226365 正式安裝 當然&#xff0c;在安裝 angular/cli 之前需要先把 Node.js 安裝好&#xff0c;請到官方網站下載安裝包 &#xff0c;安裝過程和普通軟件沒有區別。裝好…

Angular之ngx-permissions安裝入門

Angular之ngx-permissions安裝入門 權限幫助您對路線的控制權,通過使用簡單的概念,你來決定誰可以訪問它們。 安裝 安裝這個第三方庫: npm install ngx-permissions --save導入 App Module導入 import {BrowserModule } from @angular/platform-browser; import {NgMo…

Angular之ngx-permissions的常見使用情況

Angular之ngx-permissions的常見使用情況 權限驗證 首先需要請求驗證并通過&#xff0c;然后獲得權限&#xff0c;最后檢查權限。 這種方式需要在Angular 4.3.2 版本以上才會有效工作。 一般來說我們的程序有2個守衛&#xff0c;一個是信息驗證&#xff0c;一個是權限守衛&am…

Angular之ngx-permissions的控制視圖訪問

Angular之ngx-permissions的控制視圖訪問 案例 demo https://stackblitz.com/edit/ngx-permissions-iwexsb Permission指令 Permission模塊將導出指令 ngxPermissionsOnly 和 ngxPermissionsExcept,它能夠根據權限和角色控制元素的顯示/隱藏。 指令屬性 屬性值描述ngxPerm…

網頁滾動條上下滾動固定元素左右不固定之sticky

網頁滾動條上下滾動固定元素左右不固定之sticky 有時候我們需要網頁中某元素在上下滾動時可以固定在某一位置&#xff0c;但是左右不固定&#xff0c;也就是會隨著左右滾動條滾動。那么我們可以通過 sticky 布局來解決。 position: sticky 我們先看看兼容性&#xff1a; 在使…