django的coffeescript和sass资产预编译程序

civet的Python项目详细描述


麝香猫[alt text](http://upload.wikimedia.org/wikipedia/commons/2/28/luwak-katze廑in廑kepahang.jpg"麝香猫")


(图片来源:[leendertz](http://en.wikipedia.org/wiki/kopi廑u luwak廑mediaviewer/file:luwak-katze廑in廑kepahang.jpg))

麝香猫预编译资产文件(如sass、coffeescript和ec)当您使用"runserver"命令时,
django项目中的mascript 6)。它还将为您监视
文件的更改。因此,您可以编辑资产文件,并期望runserver在保存时重新编译这些文件,就像更改python源代码时如何重新启动应用服务器一样,在"settings.py"中,将civet添加到"installed"应用程序集ing.
在django 1.6及其之前,将其添加到
`django.contrib.staticfiles'之后。在django 1.7及更高版本中,在django 1.7及更高版本中,在"django.contib.contrib.staticfiles"之前添加



``python
installed应用程序(


"civet",取消django 1.7及更高版本的"django.contrib.contrib.staticfiles",取消django 1.7及更高版本的django.contrib.contrib.staticfiles,
"civet",取消django 1.6及更高版本的django 1.6及更早版本的

<
比尔/>)
```

例如:

civet_precompiled_asset_dir=os.path.join(base_dir,"precompiled_asset s")

一旦设置好,每次使用"manage.py runserver",civet将首先检查是否有新的sass和coffeescript文件需要预编译。它还将开始监视文件的更改。



仅使用sass(或coffeescript)"
--------


您可以通过设置选择civet使用(并添加自己的)哪些编译器:

``python
civet_compiler_classes=(
civet.compilers.es6.es6 compiler,

`````



离子
---------

如果您想使用特定的路径,可以将它们放入
您的"settings.py":

有人使用[bundler](http://bundler.io/)来管理他们的ruby命令行工具。如果您还使用compass之类的libaries并希望锁定它们的版本,这一点尤其有用。bundler要求您设置一个"gemfile"。要使用bundler运行sass,请在
`settings.py`:


civet_bundle_gemfile='/some/where/gemfile'


中添加此选项。请注意,不能同时设置"civet_bundle_gemfile"和"civet_sass_bin"。如果两者都设置好了,则civet将引发错误。此外,默认情况下,civet会在"path"中查找工具"bundle"。如果要使用特定路径,请在"settings.py"中设置"civet_bundle_bin"。


最后,如果要使用其他coffeescript或sass编译选项,请将这些添加到"settings.py"中。下面是civet使用的默认值:

civet_coffee_script_arguments=('--compile','--map')
civet_sass_arguments=()

(文件或目录)对于通过
设置忽略的果子狸:

伊布staticfiles.management.commands.collectStatic`.

irs.
civet_ignore_dirs=['bower_components','node_modules']



这在使用包管理器(如[bower](http://bower.io/)
或[npm](https://www.npmjs.com/)时特别有用。这些管理器通常安装的包中包含自己的生成系统、配置和文件,这些包与civet编译资产的方式不兼容。


对于es6,可以通过设置
`civet es6节点路径`来指定用于babel的节点路径。




---------


若要重新编译所有内容,请退出服务器,删除整个
"civet_asset_dir"目录,然后再次使用"runserver"命令





说明麝香猫如何与django合作。




动机
----


我们开发了麝香猫来解决以下问题:


1。要求所有开发人员记住每次使用runserver时都要使用coffee-w和sass-w,这太麻烦了。我们希望对coffeescript和sass资产进行预编译。当我们提供静态资产时,动态编译它们是没有意义的。另外,sass
包含大量include的文件可能需要很长时间才能处理。
有一次,我们有一个sass文件需要6秒才能编译。我们不希望我们的开发人员每次重新加载页面时都等待6秒。django的静态文件布局要求sass和coffeescript监视
单独的目录。我们不能让他们看顶级的
目录,然后一天就结束。但是,让
sass编译器监视多个目录是非常麻烦的,而且在coffeescript编译器中根本不存在用于

4的选项。我们有很多coffeescript文件,在os x上,这个数字超过了node.js(官方的coffeescript编译器所基于的)可以观看的默认最大文件数。(详见
[本期](https://github.com/joyent/node/issues/2479。)



rg/wiki/kopi_luwak)通过摄入咖啡
豆。我在寻找一个与
咖啡有关的冒失(时髦)的项目名称,我想到了这个。免责声明:我不知道kopi luwak
是什么味道,在开发这个插件的过程中,没有任何动物受到伤害。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用URLhttp://localhost:8080/appcontext/METAINF/index.html?   Google应用程序引擎Java错误   java此GUI在设置BoxLayout后不显示任何内容   setParameter情况下的java临时类型(字符串名称、对象值)   Rijndael 256加密与Java&Bouncy Castle   java如何检查字符串是否为空?   java InvalidDataAccessResourceUsageException:无法提取结果集   AWTGLCanvas正在隐藏java JToggleButton工具提示   使用PDFBox的java格式数字   java Datainputstream和readUTF数据丢失   在java中使用axiomapi解码XJWT断言   为什么Java和PHP的相同代码不起作用?   JavaGoogleSigin错误,代码工作真实设备工作良好,但不工作模拟器获得错误ApiException 12500,谢谢,我也是新的   java通过使用JNA将void**参数作为char[]获取函数的结果   java如何使用泛型树集创建比较器?   未正确解析java简单文本文件   在java中将字符串转换为MyString对象类型   java Spring继承不起作用