编译Web资产

chimne的Python项目详细描述


烟囱
==


您可能需要一个coffeescript编译、一个browserify转换,然后
希望运行uglify以最小化生产javascript文件的源代码。或者一个sass编译和最小化。

烟囱是一个简单的构建系统,主要用于web
资产。有许多构建系统,大多数资产编译器都能够监视更改,但是当向管道中添加更多步骤时,很难对其进行管理。


烟囱简单地称这些“编译器”为
简单,但它们可以是任何类型的python代码。定义“compiler”的子类:

``python
这可能是一个最终的可执行文件,也可能是一个页面的组合javascript文件。



```

这将使用上面定义的“coffee”编译器将每个.coffee依赖项编译到其.js输出
表单中,然后将这些
文件合并到“smoke.js`.

下一步,如果需要,应该有一个步骤来缩小“smoke.js”。使用烟囱很简单,只需在上面的定义中添加另一个任务:

``python
烟囱.make(
coffee('smoke.js',['wood.coffee','fire.coffee']),
uglify('smoke.min.js','smoke.js',
```

烟囱已经为最流行的web
资产提供了编译器。通过扩展编译器类,可以很容易地将其他类添加到脚本中。

得到这个功能,api就稍微不同了。函数“烟囱.watch”要求
一个函数,而不是
期望任务列表。这在添加新文件时调用,以便重新计算依赖项
。例如:

```python
def create_tasks():
return[
coffee('smoke.js',['wood.coffee','fire.coffee']),
uglify('smoke.min.js','smoke.js',
]

smoke.watch(create_tasks)
`````

``将使用“coffee”编译器重新创建smoke.js``然后还将创建“smoke.min.js”。
添加新文件时,将重新执行函数“create_tasks”,以生成一组新任务这对于动态生成
任务很有用。

默认情况下,重新加载将在所有新文件上启动烟囱,这可能会导致
太频繁。您可以提供一个匹配的(shell)模式列表来限制重新加载:

``python
def create_tasks():
return[
coffee('smoke.js',['wood.coffee','fire.coffee',],
uglify('smoke.min.js','smoke.js',

```

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

推荐PyPI第三方库


热门话题
java文件分块,获取长度字节   java嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束