Какой лучший способ использовать CoffeeScript с Django, если вы работаете в Windows?

При запуске Sass/Compass с Django не может быть намного проще, независимо от платформы, он немного искал найти лучший способ использования CoffeeScript с Django в окне разработки Windows.

Ответ 1

Node поддержка в Windows значительно улучшилась, так как я опубликовал свой первоначальный ответ (который я уйду в исторические цели), так что теперь гораздо легче получить эту работу.

  • Download и установите Node с помощью установщика Windows. Вы получаете команды node и npm, которые автоматически добавляются в ваш Windows PATH (доступно в cmd.exe).

  • Установите CoffeeScript: npm install -g coffee-script. Затем просто для проверки, используя cmd.exe...

    coffee --version
    CoffeeScript version 1.4.0 #sweet!
    
  • Установите django-compressor: pip install django-compressor.

  • Добавьте в свой settings.py, чтобы django-компрессор предварительно скомпилировал ваш CoffeeScript.

    COMPRESS_PRECOMPILERS = (
        ('text/coffeescript', 'coffee --compile --stdio'),
    )
    
  • Profit! Теперь используйте файлы *. Coffee или inline CoffeeScript в шаблонах Django и автоматически скомпилируйте их в javascript и в сочетании с другими скриптами в один сжатый файл.

    Пример (взято из django-compressor docs):

    {% load compress %}
    
    {% compress js %}
    <script type="text/coffeescript" charset="utf-8" src="/static/js/awesome.coffee" />
    <script type="text/coffeescript" charset="utf-8">
      # Functions:
      square = (x) -> x * x
    </script>
    {% endcompress %}
    

Оригинальный ответ (устаревший):

Цель состоит в том, чтобы писать CoffeeScript прямо внутри шаблонов Django и автоматически преобразовывать его в Javascript (вместе с файлами. coffee). django-compressor имеет прекомпилятор, который делает это до сжатия файла, для которого он лучше всего известен.

Конечно, проблема в том, что вы хотите использовать Windows (что с тобой не так?), а прекомпилятор предполагает, что у вас есть типичная установка Linux node.js и coffee- script, способная вызвать "кофе" , из командной строки со всеми стандартными опциями. Чтобы получить ту же функциональность Windows (не обращаясь к cygwin), вам просто нужно сделать небольшой .bat файл:

  • Возьмите последний двоичный файл Windows node

  • Добавьте путь, содержащий node.exe, в PATH в переменных системной среды Windows

  • Выберите один из:

    • Учитывая, что npm недоступно для Windows, вы можете использовать ryppi, минимальный менеджер пакетов Python Node, чтобы установить пакет coffee- script. Поместите ryppi.py в свою папку сценариев Python.

      cd /d C:\Users\<USERNAME>\  #'node_modules' folder can live here or wherever
      ryppi.py install coffee-script
      
    • Просто загрузите кофе script с основного сайта

  • Добавьте путь \to\coffeescript\bin (содержащий 'cake' и 'coffee') к вашему PATH в переменных системной среды Windows

  • Сделайте командный файл, чтобы вы могли использовать "кофе" из командной строки (кредит для этого), создав файл coffee.bat в папке \to\coffeescript\bin выше, с этим в качестве содержимого:

    @pushd .
    @cd /d %~dp0
    @node coffee %*
    @popd
    

    Без этого вам нужно сделать "node\path\to\bin\coffee" вместо "кофе" .

  • Попробуйте повторно открыть cmd.exe и введите...

    coffee --version
    CoffeeScript version 1.1.2  #sweet!
    

    Теперь вы используете настоящую программу для кофе script на node.

  • Установите предварительный компилятор django-компрессора, чтобы использовать coffee.bat:

    COMPRESS_PRECOMPILERS = (
        ('text/coffeescript', 'coffee.bat --compile --stdio'),
    )
    

    Я поместил это в свой файл local_settings.py. Просто оставьте файл .bat, как обычно, в файле настроек, используемом вашим производственным сервером Linux или блоком разработки. Windows не была довольна без .bat.

  • Profit!

    Теперь вы можете использовать встроенный CoffeeScript в своих шаблонах Django и автоматически скомпилировать его в javascript и в сочетании со всеми вашими другими скриптами в один сжатый файл .js. Я оставлю детали использования django-compressor для него документации.

Ответ 2

Вы можете использовать один из этих компиляторов CoffeeScript.

Некоторые из них поддерживают просмотр файловой системы, как официальный пакет node. Итак, вы можете запустить консоль и сделать

coffee -c src/ -o /bin --watch 

и все файлы coffeescript в src будут автоматически перекомпилированы при их изменении. Вам не нужна специальная интеграция с django, хотя это может быть приятно.

Ответ 3

Django Pipeline (Django >= 1.5) поддерживает компиляцию CoffeeScript, а также множество других материалов (например, LESS, SASS, JS/CSS минимизация и т.д.). Убедитесь, что у вас установлен CoffeeScript, затем pip install django-pipeline, добавьте 'конвейер' в свой INSTALLED_APPS, а затем создайте следующую запись конфигурации:

PIPELINE_COMPILERS = (
  'pipeline.compilers.coffee.CoffeeScriptCompiler',
)

Затем вы можете настроить файлы для компиляции в соответствии с связанными документами - в основном только исходный файл (ы), файл назначения и имя. Вы можете ссылаться на сжатые файлы по этому имени в шаблонах, которым это нравится:

{% compressed_js 'my_compressed_js' %}

Ответ 5

Я нахожу задержку, что компиляция через компрессор добавляет слишком много. Поэтому я компилирую на стороне клиента и проверяю файлы js. Мгновенный и очень удобный, если вы запускаете просмотр файлов при запуске команды запуска:

https://gist.github.com/EmilStenstrom/4761479