如果您在Windows上开发,使用CoffeeScript和Django的最佳方法是什么?

尽pipe开始在Django中使用Sass / Compass 并不是一件容易的事情 ,但是它已经花费了一些时间寻找在Windows开发框中使用Django的CoffeeScript的最佳方式。

自从我发布我的原始答案(我将为了历史目的而离开)之后,Windows上的节点支持已经有了很大的改进,所以现在让这个工作更容易。

  1. 使用Windows安装程序下载并安装节点。 您可以自动将nodenpm命令添加到Windows PATH(可在cmd.exe中获得)。

  2. 安装CoffeeScript: npm install -g coffee-script 。 然后,只需要测试,使用cmd.exe …

     coffee --version CoffeeScript version 1.4.0 #sweet! 
  3. 安装django-compressor: pip install django-compressor

  4. 添加到你的settings.py,这样django-compressor会预编译你的CoffeeScript。

     COMPRESS_PRECOMPILERS = ( ('text/coffeescript', 'coffee --compile --stdio'), ) 
  5. 利润! 现在在Django模板中使用* .coffee文件或嵌入CoffeeScript,并将其自动编译为JavaScript,并将其与其他脚本组合到一个压缩文件中。

    示例(从Django压缩机文档中获取 ):

     {% 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 %} 

原始答案(过时):

目标是能够在Django模板中编写CoffeeScript,并将其自动转换为Javascript(以及.coffee文件)。 django-compressor有一个预编译器,在压缩文件之前就已经知道了。

当然,问题是你想使用Windows(你有什么问题?),预编译器假定你有一个典型的Linux安装node.js和coffee-script,能够从命令行调用'coffee'标准选项。 为了得到相同的功能Windows(不诉诸于cygwin),你只需要做一个.bat文件:

  1. 抓取最新的Windows二进制节点

  2. 在Windows系统环境变量中将包含node.exe的路径添加到PATH

  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. 只需从主站点下载咖啡脚本

  4. 在Windows系统环境变量中,将路径添加到\ coffeescript \ bin(包含“cake”和“coffee”)到PATH中

  5. 创建一个批处理文件,以便可以通过在命令行中使用'coffee'(通过在此路径下创建一个coffee.bat文件)在上面的路径\ to \ coffeescript \ bin文件夹中,将其作为其内容:

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

    没有这个,你必须做'node \ path \ to \ bin \ coffee'而不是'咖啡'。

  6. 尝试重新打开cmd.exe并键入…

     coffee --version CoffeeScript version 1.1.2 #sweet! 

    现在你在节点上使用真正的咖啡脚本程序。

  7. 设置Django压缩机预编译器使用coffee.bat:

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

    我把它放在我的local_settings.py文件中。 只要在Linux生产服务器或开发盒使用的设置文件中像往常一样离开.bat。 没有.bat,Windows不开心。

  8. 利润!

    现在,您可以在Django模板中使用内联CoffeeScript,并将其自动编译为JavaScript,并将其与所有其他脚本组合到一个压缩的.js文件中。 我将留下使用django-compressor的详细资料 。

您可以使用这些CoffeeScript编译器之一 。

其中一些支持文件系统监视,就像官方的节点包一样。 所以你可以启动一个控制台,然后执行

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

而src中的所有coffeescript文件在更改时会自动重新编译。 你不需要任何与Django的特殊集成,虽然它可能是不错的。

Django Pipeline (Django> = 1.5)支持CoffeeScript编译,以及大量的其他东西(例如LESS,SASS,JS / CSS缩小等)。 确保你已经安装了CoffeeScript,然后用pip install django-pipeline ,在你的INSTALLED_APPS中添加'pipeline',然后创建下面的配置项:

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

然后你可以设置文件来编译链接的文档 – 基本上只是源文件,目标文件和名称。 你可以在模板中用这个名字来引用压缩文件,像这样:

 {% compressed_js 'my_compressed_js' %} 

这看起来很有希望: http : //pypi.python.org/pypi/django-coffeescript/

我发现通过压缩编译的延迟增加太多了。 所以我在客户端编译,而检查的JS文件。 即时,并且在runserver命令运行时开始观看文件非常方便:

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