Python压缩JS文件,重点是 slimit

python,压缩,js,文件,重点,slimit · 浏览次数 : 54

小编点评

## Summary of the Blog Post This blog post provides a comprehensive guide to learning how to compress JavaScript code using Python libraries. Here's a summary of the key takeaways: **1. Introduction:** * The post introduces the concept of JavaScript code compression and its importance for optimization. * It then introduces the jsmin.jsmin library as a powerful tool for JavaScript code compression. **2. Using jsmin.jsmin:** * The post demonstrates how to use the `jsmin.jsmin` library to compress JavaScript code. * It provides an example of how to open and read a JS file, and then use `jsmin.jsmin` to compress it. * The blog also provides a visual comparison of the compressed and original code, highlighting the significant size reduction achieved. **3. Other Libraries for Code Compression:** * The blog briefly introduces the slimit and rjsmin libraries as alternative options for JavaScript code compression. * It emphasizes that slimit is a pure Python implementation with a simple API, while rjsmin is a more mature and actively maintained library. **4. Using slimit Library:** * The post introduces the slimit library, which is a Python library specifically designed for JavaScript code compression. * It demonstrates how to use the `minify` function to compress a JS code string and print the compressed result. * The blog also highlights the versatility of slimit by showing how to use it to traverse and modify JavaScript ASTs, making it a powerful tool for code manipulation. **5. Conclusion:** * The post concludes by emphasizing the importance of code compression in optimizing JavaScript applications and highlighting the various libraries available for achieving this. Overall, this blog post provides a clear and concise guide to understanding and implementing JavaScript code compression using several Python libraries.

正文

摘要:Python Web程序员必看系列,学习如何压缩 JS 代码。

本文分享自华为云社区《Python压缩JS文件,PythonWeb程序员必看系列,重点是 slimit》,作者: 梦想橡皮擦 。

本篇博客将学习压缩 JS 代码,首先要学习的模块是 jsmin。

jsmin 库

Python 中的 jsmin 库来压缩 JavaScript 文件。这个库可以通过删除不必要的空格和注释来最小化 JavaScript 代码。

库的安装

在控制台使用如下命令即可安装,注意如果网络不好,请切换国内源。

pip install jsmin

jsmin 库代码示例

在压缩前,请提前准备一个未被压缩的 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 文件核心用到的函数是 jsmin.jsmin(input_file.read()),其 jsmin() 详细说明如下。

这个函数接受一个字符串参数,表示要压缩的 JavaScript 代码。它会移除不必要的空格、注释和换行符,并返回压缩后的 JavaScript 代码。注意该方法不支持 ECMAScript 6 新特性。

jsmin.jsmin(javascript_code)

rjsmin 库

rjsmin 是 Python 编写的 JavaScript 代码压缩工具,该库的使用与 jsmin 基本一致,压缩速度会快一些,所有的逻辑都使用正则表达式实现。

库的安装

使用下述命令进行安装,该库包含 rjsmin 库。

pip install rjsmin

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 库

slimit 是一个 Python 库,它可以用来压缩 JavaScript 代码。slimit 是一个纯 Python 实现,它没有依赖其它库,可以在任何环境下使用。

slimit 使用了 LALR(1) 语法分析器来解析 JavaScript 代码,并使用自己的算法来压缩代码。它支持压缩 ECMAScript 5 代码,包括使用了 ECMAScript 5 的严格模式。

库的安装

pip install slimit

slimit 库的使用

slimit 的用法非常简单,提供了一个名为 slimit() 的函数,可以将 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)

首次运行忽略代码警告即可。

slimit 库的其他用途

遍历、修改 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())

 

点击关注,第一时间了解华为云新鲜技术~

与Python压缩JS文件,重点是 slimit相似的内容:

Python压缩JS文件,重点是 slimit

摘要:Python Web程序员必看系列,学习如何压缩 JS 代码。 本文分享自华为云社区《Python压缩JS文件,PythonWeb程序员必看系列,重点是 slimit》,作者: 梦想橡皮擦 。 本篇博客将学习压缩 JS 代码,首先要学习的模块是 jsmin。 jsmin 库 Python 中的

【Python】基于动态规划和K聚类的彩色图片压缩算法

引言 当想要压缩一张彩色图像时,彩色图像通常由数百万个颜色值组成,每个颜色值都由红、绿、蓝三个分量组成。因此,如果我们直接对图像的每个像素进行编码,会导致非常大的数据量。为了减少数据量,我们可以尝试减少颜色的数量,从而降低存储需求。 1.主要原理 (一)颜色聚类(Color Clustering):

【转帖】python 安装whl文件

前言 WHL文件是以Wheel格式保存的Python安装包,Wheel是Python发行版的标准内置包格式。在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件,这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查

[转帖]专注于GOLANG、PYTHON、DB、CLUSTER 记一次压测引起的nginx负载均衡性能调优

https://xiaorui.cc/archives/3495 rfyiamcool2016年6月26日 0 Comments 这边有个性能要求极高的api要上线,这个服务端是golang http模块实现的。在上线之前我们理所当然的要做压力测试。起初是 “小白同学” 起头进行压力测试,但当我看到

音频文件降噪及python示例

操作系统 :Windows 10_x64 Python版本:3.9.2 noisereduce版本:3.0.2 从事音频相关工作,大概率会碰到降噪问题,今天整理下之前学习音频文件降噪的笔记,并提供Audacity和python示例。 我将从以下几个方面展开: noisereduce库介绍 使用Aud

Python按条件筛选、剔除表格数据并绘制剔除前后的直方图

本文介绍基于Python语言,读取Excel表格文件数据,以其中某一列数据的值为标准,对于这一列数据处于指定范围的所有行,再用其他几列数据的数值,加以数据筛选与剔除;同时,对筛选前、后的数据分别绘制若干直方图,并将结果数据导出保存为一个新的Excel表格文件的方法~

我从 Python 潮流周刊提取了 800 个链接,精选文章、开源项目、播客视频集锦

你好,我是豌豆花下猫。前几天,我重新整理了 Python 潮流周刊的往期分享,推出了第 1 季的图文版电子书,受到了很多读者的一致好评。 但是,合集和电子书的篇幅很长,阅读起来要花不少时间。所以,为了方便大家阅读,我打算将合集进一步整理,分门别类将原始内容的标题罗列出来。 本文总计约 800 个链接

从基础到高级应用,详解用Python实现容器化和微服务架构

本文分享自华为云社区《Python微服务与容器化实践详解【从基础到高级应用】》,作者: 柠檬味拥抱。 Python中的容器化和微服务架构实践 在现代软件开发中,容器化和微服务架构已经成为主流。容器化技术使得应用程序可以在任何环境中一致运行,而微服务架构通过将应用拆分成多个独立的服务,从而提升了系统的

Python循环控制

本文介绍了Python编程语言中关于for循环和if条件控制的一些基本使用。包含了单层循环的退出机制和多层循环的退出机制,使得我们在满足特定条件时,可以直接结束多层循环。

Python 潮流周刊#60:Python 的包管理工具真是多啊(摘要)

本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 本期周刊分享了 13 篇文章,13 个开源项目,全文 2300 字。 重要提醒: