gpt4 book ai didi

php javascript 压缩器

转载 作者:可可西里 更新时间:2023-11-01 13:23:14 24 4
gpt4 key购买 nike

我在 Hostgator 上使用共享托管计划。因此,我无法从命令行运行任何 java。

有没有我可以使用的纯 PHP 压缩器? Minify在后台使用 YUICompressor.jar,所以不会工作。

有人知道仅使用 PHP 来缩小我可以从命令行运行的 javascript 的东西吗?我还希望它能缩小变量名。

最佳答案

您可以使用 google js minifier。这是一个 python 脚本,它使用它来压缩一堆 javascript 文件:

import httplib
import simplejson as json
import urllib
import sys

def combine_js(js_files, minify=False):
files = list(js_files) # create a copy which we can modify
if not minify:
code = []
for path in files:
f = open(path, 'r')
code.append(f.read())
f.close()
return '\n\n'.join(code)

def _minify(code):
params = urllib.urlencode([
('js_code', code),
('compilation_level', 'SIMPLE_OPTIMIZATIONS'),
('output_format', 'json'),
('output_info', 'compiled_code'),
('output_info', 'errors'),
('output_info', 'warnings'),
])

headers = {'Content-type': "application/x-www-form-urlencoded"}
conn = httplib.HTTPConnection('closure-compiler.appspot.com')
conn.request('POST', '/compile', params, headers)
response = conn.getresponse()
data = json.loads(response.read())
conn.close()
if not data.get('compiledCode'):
print >>sys.stderr, 'WARNING: Did not get any code from google js compiler.'
print >>sys.stderr, data
print >>sys.stderr
print >>sys.stderr, 'Using unminified code'
return None
return data.get('compiledCode')

# Minify code in chunks to avoid the size limit
chunks = []
code = ''
while len(files):
path = files[0]
f = open(path, 'r')
data = f.read()
f.close()
# Check if we reach the size limit
if len(code + data) >= 1000000:
res = _minify(code)
if res is None:
# Fallback to unminified code
return combine_js(js_files)
chunks.append(res)
code = ''
continue
code += data
del files[0]
if code:
res = _minify(code)
if res is None:
# Fallback to unminified code
return combine_js(js_files)
chunks.append(res)
return '\n\n'.join(chunks).strip()

if __name__ == '__main__':
print combine_js(sys.argv[1:], True)

用法:python filename.py path/to/your/*.js > minified.js


如果您使用的是古老的 python 版本并且您的系统上没有安装 simplejson,这里是您如何让脚本与本地 simplejson 版本一起工作(通过 SSH 运行这些命令):

cd
wget http://pypi.python.org/packages/source/s/simplejson/simplejson-2.3.2.tar.gz
tar xzf simplejson-2.3.2.tar.gz
export PYTHONPATH=$HOME/simplejson-2.3.2/

关于php javascript 压缩器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com