Commit adffff79 authored by Tim Graham's avatar Tim Graham
Browse files

Allowed installing closure with pip for admin JavaScript compression.

parent 28ee511b
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -4,6 +4,13 @@ import os
import subprocess
import sys

try:
    import closure
except ImportError:
    closure_compiler = None
else:
    closure_compiler = os.path.join(os.path.dirname(closure.__file__), 'closure.jar')

js_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'static', 'admin', 'js')


@@ -21,7 +28,7 @@ Compiler library and Java version 6 or later."""
                      action="store_false", dest="verbose")
    options = parser.parse_args()

    compiler = os.path.expanduser(options.compiler)
    compiler = closure_compiler if closure_compiler else os.path.expanduser(options.compiler)
    if not os.path.exists(compiler):
        sys.exit(
            "Google Closure compiler jar file %s not found. Please use the -c "
+8 −6
Original line number Diff line number Diff line
@@ -45,15 +45,17 @@ Compressing JavaScript

To simplify the process of providing optimized JavaScript code, Django
includes a handy Python script which should be used to create a "minified"
version. To run it::
version. To run it:

    python django/contrib/admin/bin/compress.py
.. code-block:: console

    $ pip install closure
    $ python django/contrib/admin/bin/compress.py

Behind the scenes, ``compress.py`` is a front-end for Google's
`Closure Compiler`_ which is written in Java. However, the Closure Compiler
library is not bundled with Django directly, so those wishing to contribute
complete JavaScript patches will need to download and install the library
independently. The Closure Compiler library requires `Java`_ 7 or higher.
`Closure Compiler`_ which is written in Java. The Closure Compiler library is
not bundled with Django, but you can install it using pip as done above. The
Closure Compiler library requires `Java`_ 7 or higher.

Please don't forget to run ``compress.py`` and include the ``diff`` of the
minified scripts when submitting patches for Django's JavaScript.