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

时间:2011-08-09 02:13:33

标签: windows django coffeescript

在开始使用Sass / Compass和Django couldn't be much easier时,无论使用什么平台,都需要进行一些搜索,以找到在Windows开发盒上使用CoffeeScript和Django的最佳方法。

5 个答案:

答案 0 :(得分:25)

自从我发布原始答案(我将出于历史目的而离开)以来,Windows上的节点支持已大大改进,所以现在让它更容易实现。

  1. Download并使用Windows安装程序安装Node。您会自动将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-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 %}
    
  6. 原始答案(已废弃):

    目标是能够在Django模板中编写CoffeeScript并将其自动转换为Javascript(以及.coffee文件)。 django-compressor 有一个预编译器可以执行此操作,在文件压缩之前,它最适合。

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

    1. 获取节点

    2. 的最新Windows二进制文件
    3. 在Windows系统环境变量中将包含node.exe的路径添加到PATH

    4. 选择以下其中一项:

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

    5. 将路径\添加到\ coffeescript \ bin(包含'cake'和'coffee')到Windows系统环境变量中的PATH

    6. 制作批处理文件,这样您就可以在命令行(credit for this)中使用'coffee',在path \ to \ coffeescript \ bin中创建一个coffee.bat文件上面的文件夹,以此为内容:

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

      如果没有这个,你必须'node \ path \ to \ bin \ coffee'而不仅仅是'coffee'。

    7. 尝试重新打开cmd.exe并输入...

      coffee --version
      CoffeeScript version 1.1.2  #sweet!
      

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

    8. 设置django-compressor预编译器以使用coffee.bat:

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

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

    9. 利润!

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

答案 1 :(得分:2)

您可以使用one of these CoffeeScript compilers

其中一些支持文件系统监视,如官方节点包。所以你可以启动一个控制台并执行

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

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

答案 2 :(得分:2)

Django Pipeline(Django&gt; = 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' %}

答案 3 :(得分:1)

答案 4 :(得分:0)

我发现通过压缩器编译的延迟太多了。所以我在客户端编译,然后检查js文件。如果在运行runserver命令时开始观察文件,则即时,非常方便:

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