文分享自華為云社區(qū)《Python壓縮JS文件,PythonWeb程序員必看系列,重點(diǎn)是 slimit-云社區(qū)-華為云》,作者: 夢想橡皮擦 。
本篇博客將學(xué)習(xí)壓縮 JS 代碼,首先要學(xué)習(xí)的模塊是 jsmin。
Python 中的 jsmin 庫來壓縮 JavaScript 文件。這個(gè)庫可以通過刪除不必要的空格和注釋來最小化 JavaScript 代碼。
在控制臺(tái)使用如下命令即可安裝,注意如果網(wǎng)絡(luò)不好,請切換國內(nèi)源。
pip install jsmin
在壓縮前,請?zhí)崆皽?zhǔn)備一個(gè)未被壓縮的 JS 文件,便于對口前后效果。
import jsmin
with open("jquery.tweetscroll.js", "r", encoding='utf-8') as input_file:
with open("output.js", "w", encoding='utf-8') as output_file:
output_file.write(jsmin.jsmin(input_file.read()))
下圖可直觀查閱壓縮前與壓縮后的效果。
壓縮 JS 文件核心用到的函數(shù)是 jsmin.jsmin(input_file.read()),其 jsmin() 詳細(xì)說明如下。
這個(gè)函數(shù)接受一個(gè)字符串參數(shù),表示要壓縮的 JavaScript 代碼。它會(huì)移除不必要的空格、注釋和換行符,并返回壓縮后的 JavaScript 代碼。注意該方法不支持 ECMAScript 6 新特性。
jsmin.jsmin(javascript_code)
rjsmin 是 Python 編寫的 JavaScript 代碼壓縮工具,該庫的使用與 jsmin 基本一致,壓縮速度會(huì)快一些,所有的邏輯都使用正則表達(dá)式實(shí)現(xiàn)。
使用下述命令進(jìn)行安裝,該庫包含 rjsmin 庫。
pip install rjsmin
import rjsmin
with open("jquery.tweetscroll.js", "r", encoding='utf-8') as input_file:
with open("output.js", "w", encoding='utf-8') as output_file:
output_file.write(rjsmin.jsmin(input_file.read()))
slimit 是一個(gè) Python 庫,它可以用來壓縮 JavaScript 代碼。slimit 是一個(gè)純 Python 實(shí)現(xiàn),它沒有依賴其它庫,可以在任何環(huán)境下使用。
slimit 使用了 LALR(1) 語法分析器來解析 JavaScript 代碼,并使用自己的算法來壓縮代碼。它支持壓縮 ECMAScript 5 代碼,包括使用了 ECMAScript 5 的嚴(yán)格模式。
pip install slimit
slimit 的用法非常簡單,提供了一個(gè)名為 slimit() 的函數(shù),可以將 JavaScript 代碼作為字符串傳入,并返回壓縮后的 JavaScript 代碼。
from slimit import minify
text = """
var foo = function( obj ) {
for ( var name in obj ) {
return false;
}
return true;
};
"""
js_cdoe = minify(text, mangle=True, mangle_toplevel=True)
print(js_cdoe)
首次運(yùn)行忽略代碼警告即可。
遍歷、修改 JavaScript AST
from slimit.parser import Parser
from slimit.visitors import nodevisitor
from slimit import ast
parser = Parser()
tree = parser.parse('for(var i=0; i<10; i++) {var x=5+i;}')
for node in nodevisitor.visit(tree):
if isinstance(node, ast.Identifier) and node.value == 'i':
node.value = 'hello'
print(tree.to_ecma())
關(guān)注#華為云開發(fā)者聯(lián)盟# 點(diǎn)擊下方,第一時(shí)間了解華為云新鮮技術(shù)~
華為云博客_大數(shù)據(jù)博客_AI博客_云計(jì)算博客_開發(fā)者中心-華為云
ic Smaller 是一款超級(jí)易于使用的在線圖像壓縮工具。它的用戶界面直觀,支持壓縮配置。同時(shí),因?yàn)樗羌兇獾谋镜貕嚎s,沒有任何服務(wù)器端邏輯,所以它是完全安全的。
Pic smaller 已部署到 vercel,您可以通過訪問 URL pic-smaller.vercel.app 來使用它。由于GFW,中國用戶可以通過訪問URL txx.cssrefs.com 來使用它
這是一個(gè)純粹的 vite + React 項(xiàng)目,你必須先熟悉它們。Pic smaller 使用現(xiàn)代瀏覽器技術(shù),如 、 和 。在開發(fā)之前,您還應(yīng)該熟悉它們。OffscreenCanvasWebAssemblyWeb Worker
T之家10月2日消息 《GIF小助手》是一款iOS平臺(tái)功能強(qiáng)大的動(dòng)圖壓縮與編輯軟件,通過這個(gè)軟件您可以將 多個(gè)圖片、視頻、Livephoto 制作成 GIF,并個(gè)性化編輯分享給朋友。
功能介紹:
- GIF壓縮、裁剪、添加文字、調(diào)整倍速、調(diào)整幀集圖
-多個(gè)圖片制作GIF
-利用視頻制作GIF
-利用LivePhoto(實(shí)況照片)制作GIF
-支持Giphy搜索,下載GIF
-生成適用于微信限定大小的GIF
-快速分享到各個(gè)社交軟件
應(yīng)用下載:點(diǎn)此進(jìn)入App Store下載(要 iOS 10.0 或更高版本。與 iPhone、iPad 和 iPod touch 兼容。)
更多精選應(yīng)用,請關(guān)注IT之家iOS應(yīng)用推薦:iPhone入口|| iPad入口
*請認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。