批量压缩 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

相关文章
|
3月前
|
JavaScript API
深入探索fs.WriteStream:Node.js文件写入流的全面解析
深入探索fs.WriteStream:Node.js文件写入流的全面解析
|
1月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
39 0
|
2月前
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
92 2
前端JS读取文件内容并展示到页面上
|
2月前
|
缓存 JavaScript 中间件
优化Express.js应用程序性能:缓存策略、请求压缩和路由匹配
在开发Express.js应用时,采用合理的缓存策略、请求压缩及优化路由匹配可大幅提升性能。本文介绍如何利用`express.static`实现缓存、`compression`中间件压缩响应数据,并通过精确匹配、模块化路由及参数化路由提高路由处理效率,从而打造高效应用。
162 9
|
2月前
|
JavaScript 前端开发 数据安全/隐私保护
混淆指定js文件
【9月更文挑战第26天】JavaScript 混淆旨在保护代码知识产权、减小文件体积和提高安全性。方法包括变量名和函数名混淆、代码压缩、控制流平坦化及字符串加密。常用工具如 UglifyJS 和 JScrambler 可实现这些功能。然而,混淆可能带来兼容性和调试困难等问题,需谨慎使用并确保法律合规。
|
1月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
158 0
|
2月前
|
移动开发 JavaScript 前端开发
js之操作文件| 12-5
js之操作文件| 12-5
|
2月前
|
存储 JSON JavaScript
学习node.js十三,文件的上传于下载
学习node.js十三,文件的上传于下载
|
3月前
|
JavaScript 前端开发 安全
JS 混淆解析:JS 压缩混淆原理、OB 混淆特性、OB 混淆JS、混淆突破实战
JS 混淆解析:JS 压缩混淆原理、OB 混淆特性、OB 混淆JS、混淆突破实战
184 2
|
3月前
|
前端开发 JavaScript Linux
【Azure 应用服务】在Azure App Service for Linux环境中,部署的Django应用,出现加载css、js等静态资源文件失败
【Azure 应用服务】在Azure App Service for Linux环境中,部署的Django应用,出现加载css、js等静态资源文件失败
下一篇
无影云桌面