Python压缩JS文件,重点是 slimit

这篇具有很好参考价值的文章主要介绍了Python压缩JS文件,重点是 slimit。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要: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())

 

点击关注,第一时间了解华为云新鲜技术~文章来源地址https://www.toymoban.com/news/detail-463124.html

到了这里,关于Python压缩JS文件,重点是 slimit的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Idea中 css 、js 压缩插件会自动生成xxx.min.css、xxx.min.js文件

    第一步:下载 yuicompressor-2.4.8.jar 下载路径:打开搜索 YUI compressor Maven Repository: Search/Browse/Explore (mvnrepository.com) https://mvnrepository.com/ 找到点击下载即用(如下图) 创建文件夹,放入idea文件中 第二步:安装插件 File Watchers 找到Settings设置 点击plugins插件,输入搜索File Watchers 进

    2024年02月09日
    浏览(71)
  • 华为OD机试 - 简单的解压缩算法(Java & JS & Python)

    题目描述 现需要实现一种算法,能将一组压缩字符串还原成原始字符串, 还原规则 如下: 1、字符后面加数字N,表示重复字符N次。例如:压缩内容为A3,表示原始字符串为AAA。 2、花括号中的字符串加数字N,表示花括号中的字符重复N次。例如压缩内容为{AB}3,表示原始字符

    2023年04月08日
    浏览(41)
  • 华为OD机试 - 多段线数据压缩(Java & JS & Python & C)

    在线OJ刷题 题目详情 - 多段线数据压缩 - Hydro 题目描述 下图中,每个方块代表一个像素,每个像素用其行号和列号表示。 为简化处理,多线段的走向只能是水平、竖直、斜向45度。 上图中的多线段可以用下面的坐标串表示:(2,8),(3,7),(3,6),(3,5),(4,4),(5,3),(6,2),(7,3),(8,4),(7,5)。 但

    2024年01月21日
    浏览(49)
  • Python压缩文件

    在我们常用的系统 windows 和 Linux 系统中有很多支持的压缩包格式,包括但不限于以下种类: rar 、 zip 、 tar ,以下的标准库的作用就是用于压缩解压缩其中一些格式的压缩包。 zipfile 模块操作压缩包使用 ZipFile 类进行操作,使用方法和 open 的使用方法很相似,也是使用 r 、

    2024年02月08日
    浏览(35)
  • python 文件解压缩

    注意:gz 压缩通常是对一个文件操作的,所以需要与其他工具模块一同使用。 一般是tar 打包,gz压缩 链接:https://pan.baidu.com/s/1T2oBj2gJGx90mQZF5Y6C5A 提取码:25p1

    2024年01月22日
    浏览(33)
  • python压缩pdf文件大小

    pdf文件过大,经常会是一个问题,但是市面上基本上都是收费的工具,wps需要开会员才能使用。因此找了一个python库进行试验: 首先需要安装 运行的代码: 这个代码使用非常简单,主要是压缩文件里面的图片质量,实际上图片质量差一些在阅读器里面是看不出来的区别,效

    2024年02月13日
    浏览(41)
  • 微信小程序 ,[JS 文件编译错误] 以下文件体积超过 500KB,已跳过压缩以及 ES6 转 ES5 的处理。

    导入全部图表的echarts.js非常大,如果你的项目较大可能会导致项目上传失败, 在你把整个echarts.js导入项目时开发者工具也会有如下提示: [JS 文件编译错误] 以下文件体积超过 500KB,已跳过压缩以及 ES6 转 ES5 的处理。ec-canvas/echarts.js 我们可以通过图表在线定制来替换 echarts.js 文

    2024年02月13日
    浏览(43)
  • 【用python实现一个压缩文件的解压】

    1.想用python实现一个压缩文件的解压 在Python中,可以使用内置的 zipfile 模块来解压缩文件。以下是一个简单的示例代码,用于解压缩一个zip文件: 在这个示例中,我们首先导入了 zipfile 模块。然后,我们指定要解压的zip文件路径和解压后的文件存放目录。接着,我们使用 w

    2024年02月06日
    浏览(33)
  • Python实现rar、zip和7z文件的压缩和解压

    一、7z压缩文件的压缩和解压 1、安装py7zr 我们要先安装 py7zr 第三方库: 如果python环境有问题,执行上面那一条安装语句老是安装在默认的python环境的话,我们可以执行下面这条语句,将第三方库安装在项目的虚拟环境中: 2、解压7z文件 3、压缩成7z文件 二、rar压缩文件的压

    2024年02月07日
    浏览(53)
  • 【华为OD机试真题 】1105 - 简单的解压缩算法(JAVA C++ Python JS) | 机试题+算法思路+考点+代码分析

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Java语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包