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

And*_*art 14 windows django coffeescript

虽然无论平台如何开始使用Sass/Compass和Django 都不是那么容易,但是在Windows开发盒上找到了使用CoffeeScript和Django的最佳方法.

And*_*art 25

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

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

  2. 安装CoffeeScript : npm install -g coffee-script. 然后只是为了测试,使用cmd.exe ...

    coffee --version
    CoffeeScript version 1.4.0 #sweet!
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装django-compressor : pip install django-compressor.

  4. 添加到您的settings.py所以django-compressor将预编译您的CoffeeScript.

    COMPRESS_PRECOMPILERS = (
        ('text/coffeescript', 'coffee --compile --stdio'),
    )
    
    Run Code Online (Sandbox Code Playgroud)
  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 %}
    
    Run Code Online (Sandbox Code Playgroud)

原始答案(已废弃):

目标是能够在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
      
      Run Code Online (Sandbox Code Playgroud)
    2. 只需从主站点下载咖啡脚本即可

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

  5. 创建一个批处理文件,这样你就可以在命令行中使用'coffee'(相信这个),方法是在上面的path\to\coffeescript\bin文件夹中创建一个coffee.bat文件,其内容如下:

    @pushd .
    @cd /d %~dp0
    @node coffee %*
    @popd
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    coffee --version
    CoffeeScript version 1.1.2  #sweet!
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    COMPRESS_PRECOMPILERS = (
        ('text/coffeescript', 'coffee.bat --compile --stdio'),
    )
    
    Run Code Online (Sandbox Code Playgroud)

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

  8. 利润!

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