我在Hostgator上使用共享託管計劃。因此,我不能從命令行運行任何Java。php javascript minifier
有沒有純PHP minifiers在那裏,我可以使用? Minify在後臺使用YUICompressor.jar,以至於無法正常工作。
任何人都知道,它使用PHP只是用於縮小,我可以在命令行中運行JavaScript的東西嗎?我也想要縮小變量名稱。
我在Hostgator上使用共享託管計劃。因此,我不能從命令行運行任何Java。php javascript minifier
有沒有純PHP minifiers在那裏,我可以使用? Minify在後臺使用YUICompressor.jar,以至於無法正常工作。
任何人都知道,它使用PHP只是用於縮小,我可以在命令行中運行JavaScript的東西嗎?我也想要縮小變量名稱。
你可以使用谷歌的JS minifier。下面是它使用它來壓縮一堆的JavaScript文件與它的Python腳本:
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/
你測試過了嗎? – qwertymk 2012-02-19 17:55:47
這是從我的一個網站上運行生產。我只是刪除了一些東西,並添加了獨立的'__main__'塊。我沒有測試*版本,但是原始腳本。 – ThiefMaster 2012-02-19 17:56:56
啊,只是修正了語法錯誤。這只是一個'',它不屬於它的地方。您收到的錯誤意味着您正在使用舊的Python版本。你至少需要2.6來運行它(這已經很老了,最近2.7!) – ThiefMaster 2012-02-19 17:58:42
查找基於JS minifier在線網絡,並查詢其<form>
通過PHP與捲曲或file_get_contents
或相似。我想你可能不得不在線使用他們的服務前請求在線服務權限。
如果考慮其他JavaScript minifiers /壓縮機,看看院長愛德華的封隔器的PHP接口:http://joliclic.free.fr/php/javascript-packer/en/
有一個可用,所以你可以在網上測試它的在線演示(強烈建議你嘗試安裝之前它在你自己的服務器上)。我快速在線測試給了我一個正確的工作縮小的JavaScript文件。 它應該完成工作。
縮減大小的默認是不YUIC,但原生PHP port of JSMin加上錯誤修正。
其他本地PHP的Javascript壓縮機我遇到:
你有沒有考慮縮小別的地方呢?上傳到你的服務器? – jergason 2012-02-19 17:29:13
也許最簡單的方法是使用網絡服務爲此使用cURL或類似 – Vitamin 2012-02-19 17:29:46
@Jergason:不可能,因爲我爲我的項目使用git。 – qwertymk 2012-02-19 17:33:57