Skip to main content

Django Static Precompiler

Django Static Precompiler provides template tags and filters to compile CoffeeScript, LiveScript, SASS / SCSS, LESS, Stylus, Babel and Handlebars. It works with both inline code and external files.

Build Status Documentation

Documentation

Documentation is available at https://django-static-precompiler.readthedocs.io.

Install

pip install django-static-precompiler

Use in templates

{% load compile_static %}
{% load static %}

<script src="{% static "path/to/script.coffee"|compile %}"></script>
<link rel="stylesheet" href="{% static "path/to/styles1.less"|compile %}" />
<link rel="stylesheet" href="{% static "path/to/styles2.scss"|compile %}" />

Use in Python

>>> from static_precompiler.utils import compile_static
>>> compile_static("styles.scss")
"COMPILED/styles.css"

Python & Django compatibility

django-static-precompiler Python Django
2.2+ 3.6+ 2.0 - 4.1
2.1 3.6+ 2.0 - 4.0
2.0 3.4+ 1.9 - 3.2
1.7-1.8 2.7+ 1.7 - 2.2
1.6 2.7+ 1.7 - 1.11
1.5 2.7+ 1.6 - 1.10
1.1-1.4 2.7+ 1.6 - 1.9
1.0 2.7+ 1.6 - 1.7

Changelog

2.4

Deprecation

  • Ruby-based Sass compiler is deprecated and will be removed in 3.0

New

  • Added support for Dart Sass, see documentation on how to enable it. Dart Sass will become the default Sass compiler starting from 3.0

Bugfixes

  • Fix the bug with a greedy regex in the URL converter

Misc

  • Ensure compatibility with the latest versions of compilers:
    • coffeescript@2.7.0 (may break compatibility with older versions)
    • livescript@1.6.0
    • less@4.1.3
    • handlebars@4.7.7

2.3

  • Fix incorrect source map URL with libsass

2.2

  • Add support for Django 4.1

2.1

  • Drop Python 3.5 support
  • Drop Django 1.x support
  • Add support for Django 4.0

2.0

  • Drop Python 2.x support
  • Add support for Django 3.0 and 3.1

1.8.2

  • Add clean_css option to LESS compiler
  • Fix URL converter to properly handle url(..) not followed directly by ;

1.8.1

  • Fix setup.py to add compatibility with Python 3.4 and below.

1.8

  • Remove deprecated settings: COFFEESCRIPT_EXECUTABLE, SCSS_EXECUTABLE, SCSS_USE_COMPASS, LESS_EXECUTABLE
  • Add --ignore-dependencies option to compilestatic command
  • Add --delete-stale-files option to compilestatic command

1.7.1

  • Bugfix: properly handle the URLs containing parenthesis or quotes

1.7

  • Prevent detection of imports in comments (SCSS)
  • Add support for Django 2.0

1.6

  • Add support for Django 1.11
  • Drop support for Django 1.6
  • Add include_path option to LESS compiler
  • Take account of load_paths option when doing inline compilation with libsass
  • Bugfix: take account of additional compiler options when doing inline compilation with SASS

1.5

  • Add support for Django 1.10 and Python 3.5
  • Improve support for load_paths setting in SCSS/SASS compilers.

1.4

  • Fix the run_command utility function to rely on process return code rather than stderr to determine if compilation has finished successfully. WARNING! Changes in run_command are backward incompatible. If you use this function in your custom compiler you should update your code.

1.3.1

  • Add support for --presets option in Babel compiler. See babel-cli [options <https://babeljs.io/docs/usage/options/>]{.title-ref} for more information.

1.3

  • Fix Stylus compiler to actually enable support for detecting changes in imported files
  • Add precision option to SASS / SCSS / LibSass compilers. Set it to 8 or more if you compile Bootstrap.
  • Add output_style option to SASS / SCSS / LibSass compilers.
  • Enable verbose output for compilestatic management command

1.2

  • Add LiveScript compiler
  • Add support for --global-var option in LESS compiler
  • Add SCSS / SASS compiler based on Libsass

1.1

  • Add source maps support for SASS/SCSS
  • Add source maps support for LESS
  • Add source maps support for CoffeeScript
  • Add source maps support for Stylus
  • Add source maps support for Babel
  • Add Handlebars compiler
  • Add support for Django 1.9
  • Add plugins parameter to Babel compiler
  • Add load_paths parameter to SASS/SCSS compilers

1.0.1

  • Add modules parameter to Babel compiler
  • Allow to install Watchdog with pip install django-static-precompiler[watch]

1.0

  • Add compile template filter
  • Deprecate {% compile %} template tag
  • The following compiler specific template tags are REMOVED:
    • {% coffeescript %}
    • {% inlinecoffeescript %}
    • {% sass %}
    • {% inlinesass %}
    • {% scss %}
    • {% inlinescss %}
    • {% less %}
    • {% inlineless %}
  • Add Stylus compiler

0.9

  • Compiler options are specified with STATIC_PRECOMPILER_COMPILERS setting.
  • The following settings are DEPRECATED:
    • COFFEESCRIPT_EXECUTABLE
    • SCSS_EXECUTABLE
    • SCSS_USE_COMPASS
    • LESS_EXECUTABLE
  • -C (--no-cache) flag is removed from SASS/SCSS compilers
  • Add STATIC_PRECOMPILER_LIST_FILES setting
  • Add Babel compiler

0.8

  • Add {% inlinecompile %} template tag
  • The following compiler specific template tags are DEPRECATED:
    • {% coffeescript %}
    • {% inlinecoffeescript %}
    • {% sass %}
    • {% inlinesass %}
    • {% scss %}
    • {% inlinescss %}
    • {% less %}
    • {% inlineless %}
  • Use Django 1.7 migrations
  • BUGFIX: fix sass imports from scss and vice versa
  • BUGFIX: make sure that compilestatic works if watchdog isn't installed.
  • BUGFIX: fix compilation error when dependency file was removed or renamed

0.7

  • Add compilestatic management command (replaces static_precompiler_watch)
  • Add STATIC_PRECOMPILER_DISABLE_AUTO_COMPILE to settings
  • Add STATIC_PRECOMPILER_CACHE_NAME to settings
  • Bugfixes

0.6

  • Add STATIC_PRECOMPILER_PREPEND_STATIC_URL to settings
  • Add {% compile %} template tag

0.5.3

  • Update the parsing of @import statements. Fix the bug with URLs containing commas.

0.5.2

  • static_precompiler_watch: watch for changes in all directories handled by static finders, not only STATIC_ROOT
  • static_precompiler_watch: add --no-initial-scan option

0.5.1

  • Fix SCSS compilation error when importing Compass styles

0.5

  • Add Python 3 support

0.4

  • Add compile_static and compile_static_lazy utility functions.

0.3

  • Bug fixes
  • Add Windows compatibility

0.2

  • Reduce the max length of varchar fields in Dependency model to meet MySQL limitations
  • static_precompiler_watch: don't fall with exception on compilation errors or if source file is not found

0.1

  • Initial release

Metadata

Release files for django-static-precompiler 2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-static-precompiler 2.4
File Size Uploaded
django-static-precompiler-2.4.tar.gz 24.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-static-precompiler 2.4
File Interpreter ABI Platform
django_static_precompiler-2.4-py3-none-any.whl Python 3 none any Details

Total release size: 58.2 kB

Release files / django-static-precompiler-2.4.tar.gz

Download URL django-static-precompiler-2.4.tar.gz
Size 24.3 kB
Tags Source
SHA-256 checksum
How to use checksums
22c983f4318f4ad96645d8b71af5c29d4525e55d0d5c3abe8917310280c7f89e
BLAKE2b-256 checksum
How to use checksums
09bfa8f0a07e954137d551c7fce53d48bc949ece9c3b8fbf559346a6922db0d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release files / django_static_precompiler-2.4-py3-none-any.whl

Download URL django_static_precompiler-2.4-py3-none-any.whl
Size 34.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b67e951b19e1136f6bf00d879ae236435fe4be3e430369644743b1677645ce4
BLAKE2b-256 checksum
How to use checksums
d5c190b8ff7efdd04a0108fdc4743fae3d6eb990ee4ed581fb9d73345a0fd22a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release history Release notifications | RSS feed

This release

2.4 This release

2 release files

2.3

1 release file

2.2

1 release file

2.1

1 release file

2.0

1 release file

1.8.2

1 release file

1.8.1

1 release file

1.8

1 release file

1.7.1

1 release file

1.7

1 release file

1.6

1 release file

1.5

1 release file

1.4

1 release file

1.3.1

1 release file

1.3

1 release file

1.2

1 release file

1.1

1 release file

1.0.1

1 release file

1.0

1 release file

0.9

1 release file

0.8

1 release file

0.7

1 release file

0.6

1 release file

0.5.3

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page