TheNewCivilian
TheNewCivilian

Reputation: 109

Use Django_compressor ES6Compiler under Windows

I tried to run a Django App I developed under Linux on an Windows setup. The Application starts, but when I enter a page with a template which uses the compressor like this ("index.js" imports npm packages):

{% load static %}
{% load compress %}
<html>
        ...
    <body>
      ...
      {% compress js %}
      <script type="module" src="{% static 'index.js' %}"></script>
      {% endcompress %}
    </body>
</html>

.. I get this Error:

Traceback (most recent call last):
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\neuz8t\Downloads\cs_viewer_server\cs_viewer\views.py", line 19, in index
    return render(request,'cs_viewer/index.html',{'graph_elements':tmp_graph_elements_json})
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\django\shortcuts.py", line 36, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\django\template\loader.py", line 62, in render_to_string
    return template.render(context, request)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\django\template\backends\django.py", line 61, in render
    return self.template.render(context)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\django\template\base.py", line 171, in render
    return self._render(context)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\django\template\base.py", line 163, in _render
    return self.nodelist.render(context)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\django\template\base.py", line 937, in render
    bit = node.render_annotated(context)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\django\template\base.py", line 904, in render_annotated
    return self.render(context)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\compressor\templatetags\compress.py", line 131, in render
    return self.render_compressed(context, self.kind, self.mode, forced=forced)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\compressor\templatetags\compress.py", line 107, in render_compressed
    rendered_output = compressor.output(mode, forced=forced)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\compressor\js.py", line 50, in output
    ret.append(subnode.output(*args, **kwargs))
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\compressor\js.py", line 52, in output
    return super(JsCompressor, self).output(*args, **kwargs)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\compressor\base.py", line 295, in output
    output = '\n'.join(self.filter_input(forced))
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\compressor\js.py", line 60, in filter_input
    for hunk in self.hunks(forced):
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\compressor\base.py", line 205, in hunks
    precompiled, value = self.precompile(value, **options)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\compressor\base.py", line 276, in precompile
    return True, filter.input(**kwargs)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\compressor_toolkit\precompilers.py", line 53, in input
    return super(BaseCompiler, self).input(**kwargs)
  File "C:\Users\neuz8t\AppData\Local\Programs\Python\Python37\lib\site-packages\compressor\filters\base.py", line 196, in input
    raise FilterError(err)
compressor.exception.FilterError: 'export' is not recognized as an internal or external command

compressor.exception.FilterError: 'export' is not recognized as an internal or external command

My Settings Look like:

STATIC_URL = '/static/'
STATICFILES_DIRS = [ "cs_viewer/static", ]
STATIC_ROOT="cs_viewer/static"

INSTALLED_APPS += (
    'compressor',
    'compressor_toolkit',
)
STATICFILES_FINDERS = (
    'compressor.finders.CompressorFinder',
)
COMPRESS_CSS_FILTERS = [
    'compressor.filters.css_default.CssAbsoluteFilter',
    'compressor.filters.cssmin.CSSMinFilter',
    'compressor.filters.template.TemplateFilter'
]
COMPRESS_JS_FILTERS = [
    'compressor.filters.jsmin.JSMinFilter',
]
COMPRESS_PRECOMPILERS = (
    ('module', 'compressor_toolkit.precompilers.ES6Compiler'),
    ('css', 'compressor_toolkit.precompilers.SCSSCompiler'),
)
COMPRESS_ENABLED = True

I tried different things, including reinstall of all dependencies, reinstalling all npm packages.. nothing worked until now.

Upvotes: 0

Views: 489

Answers (1)

karyon
karyon

Reputation: 2557

It looks like you're using the ES6Compiler from compressor_toolkit.

That one is using the export command, which is only available on Linux. You'll need to ask the compressor_toolkit project to add windows support, or to build that yourself and make a PR, or to use linux :)

Upvotes: 1

Related Questions