批量压缩 js 文件

简介:

【环境准备】

1、下载并安装 Python

2、下载并安装 NodeJS

3、安装 uglify-js/uglify-es 。(二选一)

1
2
3
4
5
6
7
8
9
10
//uglify-js 只支持 ES5
npm install uglify-js -g
 
//uglify-es 支持 ES6+
npm install uglify-es -g
 
//uglify-js/uglify-es 在 CLI 调用时都是 uglifyjs
//在 API 调用时有所不同
var  UglifyJS = require( "uglify-js" );
var  UglifyJS = require( "uglify-es" );


【Python 代码】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#encoding: utf-8
#author: walker
#date: 2017-11-01
#summary: Python 调用 uglify-js/uglify-es 批量压缩 js 文件
 
import  os
 
# 处理一个
def  ProcOne(parent, filename):
     if  not  filename.lower().endswith( '.js' ):   #忽略非js文件
         return
     if  filename.lower().endswith( '.min.js' ):    #忽略已压缩的js文件
         return
 
     srcFile  =  os.path.join(parent, filename)
     dstFile  =  srcFile[: - 3 +  '.min.js'
     cmd  =  'uglifyjs "%s" -o "%s"'  %  (srcFile, dstFile)
     print ( '%s ...'  %  cmd)
     os.system(cmd)
 
# 处理所有
# recursive 为 True,遍历 root 目录
# recursive 为 False,只处理 root 的一级目录
def  ProcAll(root, recursive = True ):
     if  recursive:
         for  parent, dirnames, filenames  in  os.walk(root):
             for  filename  in  filenames:
                 ProcOne(parent, filename)             
     else :
         for  filename  in  os.listdir(root):
             ProcOne(root, filename)
     
     
if  __name__  = =  '__main__' :
     ProcAll(r 'D:\NodejsProject\test' , recursive = False )


【测试版本说明】

1
2
3
4
OS: Windows 10
Python: 3.6.3
NodeJS: 8.7.0
uglify-es: 3.1.6


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1978134如需转载请自行联系原作者


RQSLT

相关文章
|
4月前
|
编解码 JavaScript 前端开发
如何在网页播放英文的m3u8文件(基于Javascript搭建的在线网页工具)
什么是m3u8?又该如何在网页中高效、便捷地播放英文的m3u8文件呢?今天这篇文章就带你一起了解,并推荐一种基于Javascript搭建的在线网页工具,让你轻松解决播放问题。
970 0
|
9月前
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
685 11
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
190 0
|
缓存 JavaScript 中间件
优化Express.js应用程序性能:缓存策略、请求压缩和路由匹配
在开发Express.js应用时,采用合理的缓存策略、请求压缩及优化路由匹配可大幅提升性能。本文介绍如何利用`express.static`实现缓存、`compression`中间件压缩响应数据,并通过精确匹配、模块化路由及参数化路由提高路由处理效率,从而打造高效应用。
540 90
|
JavaScript 前端开发 API
Next.js 实战 (六):如何实现文件本地上传
这篇文章介绍了在Next.js中如何实现文件上传到本地的方法。文章首先提到Next.js官方文档中没有提供文件上传的实例代码,因此开发者需要自行实现,通常有两种思路:使用Node.js原生上传或使用第三方插件如multer。接着,文章选择了使用Node.js原生上传的方式来讲解实现过程,包括如何通过哈希值命名文件、上传到指定目录以及如何分类文件夹。然后,文章展示了具体的实现步骤,包括编写代码来处理文件上传,并给出了代码示例。最后,文章通过一个效果演示说明了如何通过postman模拟上传文件,并展示了上传后的文件夹结构。
394 0
Next.js 实战 (六):如何实现文件本地上传
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
499 2
前端JS读取文件内容并展示到页面上
|
JavaScript 前端开发 数据安全/隐私保护
混淆指定js文件
【9月更文挑战第26天】JavaScript 混淆旨在保护代码知识产权、减小文件体积和提高安全性。方法包括变量名和函数名混淆、代码压缩、控制流平坦化及字符串加密。常用工具如 UglifyJS 和 JScrambler 可实现这些功能。然而,混淆可能带来兼容性和调试困难等问题,需谨慎使用并确保法律合规。
228 5
|
移动开发 JavaScript 前端开发
js之操作文件| 12-5
js之操作文件| 12-5
|
存储 JSON JavaScript
学习node.js十三,文件的上传于下载
学习node.js十三,文件的上传于下载
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
725 0

热门文章

最新文章