私はHostgatorで共有ホスティングプランを使用しています。したがって、私はコマンドラインからjavaを実行することはできません。php javascript minifier
私が使用できる純粋なPHP minifierはありますか? MinifyはバックグラウンドでYUICompressor.jarを使用するため、動作しません。
PHPを使用してコマンドラインから実行できるjavascriptを使用している人は誰でも知っていますか?私は変数名を縮小することも望みます。
私はHostgatorで共有ホスティングプランを使用しています。したがって、私はコマンドラインからjavaを実行することはできません。php javascript minifier
私が使用できる純粋なPHP minifierはありますか? MinifyはバックグラウンドでYUICompressor.jarを使用するため、動作しません。
PHPを使用してコマンドラインから実行できるjavascriptを使用している人は誰でも知っていますか?私は変数名を縮小することも望みます。
Google jsミニカーを使用できます。ここではそれと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のバージョンを使用していて、上のインストールのsimplejsonれていない場合は
python filename.py path/to/your/*.js > minified.js
お使いのシステムは、ここ(SSH経由でこれらのコマンドを実行します)スクリプトがローカルのsimplejsonのバージョンで動作するように取得することができます方法は次のとおりです。
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
それは私のウェブサイトの1つで、プロダクションで稼働しています。私はちょうどその周りのいくつかのものを削除し、スタンドアロンの__main__ブロックを追加しました。私はそのバージョンをテストしませんでしたが、元のスクリプトです。 – ThiefMaster
ああ、ちょうど構文エラーを修正しました。その場所に属していないのはちょうど '、'だった。あなたが得るエラーはあなたが古いpythonバージョンを使用していることを意味します。 – ThiefMaster
オンラインWebベースのJSミニファイアを見つけて、cURLまたはfile_get_contents
などでPHPを通じて<form>
に問い合わせます。この方法でサービスを利用する前にオンラインサービスに許可を求める必要があるかもしれないと思います。
あなたは他のJavaScript minifiers /コンプレッサーを考慮すれば、ディーンエドワードのパッカーのPHPポートを見てみましょう:http://joliclic.free.fr/php/javascript-packer/en/をインストールしようとする前に、
あなたがオンラインでそれをテストすることができますので、オンラインで利用可能なデモがあります(強くお勧めしますそれはあなた自身のサーバー上にあります)。私は迅速なオンラインテストは私に戻って正しい作業minified javascriptファイルを与えた。 それは仕事を完了する必要があります。
縮小化のデフォルトはYUICではありませんが、ネイティブのPHP port of JSMinとバグの修正。
私が遭遇してきた他のネイティブPHP Javascriptのコンプレッサー:
あなたのサーバーにアップロードしますか? – jergason
おそらく、最も簡単な方法は、cURLなどを使ってWebサービスを使用することです。 – Vitamin
@ Jergason:自分のプロジェクトにgitを使用しているので不可能です。 – qwertymk