Какой лучший способ использовать CoffeeScript с Django, если вы разрабатываете для Windows? - PullRequest
14 голосов
/ 09 августа 2011

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

Ответы [ 5 ]

25 голосов
/ 09 августа 2011

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

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

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

    coffee --version
    CoffeeScript version 1.4.0 #sweet!
    
  3. Установить django-компрессор: pip install django-compressor.

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

    COMPRESS_PRECOMPILERS = (
        ('text/coffeescript', 'coffee --compile --stdio'),
    )
    
  5. Прибыль!Теперь используйте * .coffee файлы или встроенный 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-compress имеет прекомпилятор, который делает это до сжатия файлов, для которого он известен лучше всего.

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

  1. Получить последний бинарный файл Windows узел

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

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

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

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

  4. Добавьтепуть \ к \ coffeescript \ bin (содержащий «торт» и «кофе») к вашей переменной PATH в системной среде Windows

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

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

    Без этого вам придется использовать 'узел \ путь \ к \ bin \ coffee' вместо простого 'coffee'.

  6. Попробуйте заново открыть cmd.exe и набрать ...

    coffee --version
    CoffeeScript version 1.1.2  #sweet!
    

    Теперь вы используете настоящую программу-скрипт coffee на узле.

  7. Настройте прекомпилятор django-compress для использования coffee.bat:

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

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

  8. Прибыль!

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

2 голосов
/ 22 июля 2014

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

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

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

{% compressed_js 'my_compressed_js' %}
2 голосов
/ 09 августа 2011

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

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

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

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

1 голос
/ 08 апреля 2012

Это выглядит многообещающе для меня: http://pypi.python.org/pypi/django-coffeescript/

0 голосов
/ 12 февраля 2013

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...