编译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',
```
==
您可能需要一个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',