什么';如果你愿意的话,那么在Django中使用CoffeeScript是最好的方法;你在Windows上开发吗?

什么';如果你愿意的话,那么在Django中使用CoffeeScript是最好的方法;你在Windows上开发吗?,windows,django,coffeescript,Windows,Django,Coffeescript,尽管开始在Django上使用Sass/Compass,而不考虑平台,但为了找到在Windows开发环境中使用CoffeeScript和Django的最佳方法,需要进行一些搜索。您可以使用 其中一些支持文件系统监视,如官方节点包。因此,您可以启动控制台并执行以下操作: coffee -c src/ -o /bin --watch src中的所有coffeescript文件在更改时将自动重新编译。您不需要与django进行任何特殊的集成,尽管这可能会很好。自从我发布了我的原始答案(出于历史目的,

尽管开始在Django上使用Sass/Compass,而不考虑平台,但为了找到在Windows开发环境中使用CoffeeScript和Django的最佳方法,需要进行一些搜索。

您可以使用

其中一些支持文件系统监视,如官方节点包。因此,您可以启动控制台并执行以下操作:

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

src中的所有coffeescript文件在更改时将自动重新编译。您不需要与django进行任何特殊的集成,尽管这可能会很好。

自从我发布了我的原始答案(出于历史目的,我将保留该答案)以来,Windows上的节点支持有了很大的改进,因此现在更容易实现

  • 并使用Windows installer安装节点。您会自动将
    节点
    npm
    命令添加到Windows路径(可在cmd.exe中获得)

  • 安装咖啡脚本:
    npm安装-g咖啡脚本
    。然后使用cmd.exe进行测试

    coffee --version
    CoffeeScript version 1.4.0 #sweet!
    
  • 安装django压缩机:
    pip安装django压缩机

  • 添加到您的settings.py,以便django compressor将预编译您的咖啡脚本

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

    示例(摘自):

    如果没有此选项,您必须执行“node\path\to\bin\coffee”而不仅仅是“coffee”

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

    coffee --version
    CoffeeScript version 1.1.2  #sweet!
    
    现在,您正在节点上使用真正的咖啡脚本程序

  • 将django压缩机预编译器设置为使用coffee.bat:

    COMPRESS_PRECOMPILERS = (
        ('text/coffeescript', 'coffee.bat --compile --stdio'),
    )
    
    我把它放在本地的_settings.py文件中。只需像往常一样在Linux生产服务器或开发框使用的设置文件中去掉.bat。没有球棒,Windows很不高兴

  • 利润

    现在,您可以在Django模板中使用内联CoffeeScript,并将其自动编译为javascript,并与所有其他脚本组合成一个压缩的.js文件。我将把使用django压缩机的细节留给它的用户


  • 这对我来说很有希望:

    我发现通过压缩器编译会增加太多的延迟。所以我改为在客户端编译,并检入js文件。即时,如果在运行runserver命令时开始查看文件,则非常方便:

    (Django>=1.5)支持CoffeeScript编译,以及加载其他内容(例如LESS、SASS、JS/CSS缩小等)。确保已安装CoffeeScript,然后安装pip-install-django管道,将“管道”添加到已安装的应用程序中,然后创建以下配置条目:

    PIPELINE_COMPILERS = (
      'pipeline.compilers.coffee.CoffeeScriptCompiler',
    )
    
    然后,您可以根据链接的文档设置要编译的文件-基本上就是源文件、目标文件和名称。您可以在如下模板中使用此名称引用压缩文件:

    {% compressed_js 'my_compressed_js' %}
    

    这种方法非常好,除了创建的javascript文件具有时间戳文件名,即使在未启用压缩时也是如此,这使得在调试器中设置断点非常困难。或者你有这个问题吗?这个答案很好,两次。你有没有关于两者结合使用的博客文章?当你可以使用django管道或django静态预编译器时,你为什么要经历这些呢?!当你说“所有这些”时,你可能会看到原始答案,这需要一点努力。答案现在基本上是——使用django压缩机。它对我有用。正如您所了解的,其他应用程序也会做类似的事情。有没有办法指定特定的文件?更具体地说,这(似乎)不适用于ModelAdmin的媒体类中指定的JS。也许我只是错过了一些东西。。。
    COMPRESS_PRECOMPILERS = (
        ('text/coffeescript', 'coffee.bat --compile --stdio'),
    )
    
    PIPELINE_COMPILERS = (
      'pipeline.compilers.coffee.CoffeeScriptCompiler',
    )
    
    {% compressed_js 'my_compressed_js' %}