在开始使用Sass / Compass和Django couldn't be much easier时,无论使用什么平台,都需要进行一些搜索,以找到在Windows开发盒上使用CoffeeScript和Django的最佳方法。
答案 0 :(得分:25)
Download并使用Windows安装程序安装Node。您会自动将node
和npm
命令添加到Windows PATH(在cmd.exe中可用)。
安装CoffeeScript:npm install -g coffee-script
。然后使用cmd.exe进行测试...
coffee --version
CoffeeScript version 1.4.0 #sweet!
安装django-compressor:pip install django-compressor
。
添加到您的settings.py中,因此django-compressor将预编译您的CoffeeScript。
COMPRESS_PRECOMPILERS = (
('text/coffeescript', 'coffee --compile --stdio'),
)
利润!现在在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 %}
原始答案(已废弃):
目标是能够在Django模板中编写CoffeeScript并将其自动转换为Javascript(以及.coffee文件)。 django-compressor 有一个预编译器可以执行此操作,在文件压缩之前,它最适合。
当然问题是你想使用Windows(你怎么了?),预编译器假设你有一个典型的Linux安装node.js和coffee-script,能够从命令行调用'coffee'所有标准选项。要获得相同的功能Windows(不使用cygwin),您只需制作一个.bat文件:
获取节点
在Windows系统环境变量中将包含node.exe的路径添加到PATH
选择以下其中一项:
鉴于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
只需从主网站下载咖啡脚本
将路径\添加到\ coffeescript \ bin(包含'cake'和'coffee')到Windows系统环境变量中的PATH
制作批处理文件,这样您就可以在命令行(credit for this)中使用'coffee',在path \ to \ coffeescript \ bin中创建一个coffee.bat文件上面的文件夹,以此为内容:
@pushd .
@cd /d %~dp0
@node coffee %*
@popd
如果没有这个,你必须'node \ path \ to \ bin \ coffee'而不仅仅是'coffee'。
尝试重新打开cmd.exe并输入...
coffee --version
CoffeeScript version 1.1.2 #sweet!
现在你正在节点上使用真正的咖啡脚本程序。
设置django-compressor预编译器以使用coffee.bat:
COMPRESS_PRECOMPILERS = (
('text/coffeescript', 'coffee.bat --compile --stdio'),
)
我把它放在我的local_settings.py文件中。只需像往常一样在Linux生产服务器或开发盒使用的设置文件中关闭.bat。没有.bat,Windows就不高兴。
利润!
现在,您可以在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命令时开始观察文件,则即时,非常方便: