任务执行器类似于python的gulp

Flask-Gulp的Python项目详细描述


类似于gulp的任务管理器,用于处理静态文件。

使用烧瓶吸口

设置酒瓶吞咽是相当容易的。下面是一个示例:

from flask_gulp import Static

static = Static(app)

这允许使用task装饰器添加任务:

@static.task('coffee')
def coffee_task():
    src(r'static/coffee/**/*.coffee')\
        .pipe(coffee(bare=True))\
        .pipe(dest(output='static/js/'))

src函数与所有扩展一起作为全局提供给任务函数作用域。

如您所见,工作流类似于gulp

jscss函数

Flask-Funnel启发,jscss函数被提供给应用程序上下文,以便生成相应的链接:

<head>
    <!-- ... -->
    {{ css('less') }}
</head>
<body>
   <!-- ... -->
   {{ js('coffee', 'cjsx') }}
</body>

每个任务接收多个任务名称并生成指向生成文件的链接。

扩展名

烧瓶gulp带有四个扩展名,coffeecjsxlessdest。第一个接受executable设置,该设置保存相应的二进制位置,默认情况是直接调用它。

要添加新的扩展,请使用装潢器,该装潢器配有烧瓶吸口:

from flask_gulp.extensions import extension

@extension
def cjsx(resources):
    command = ['cjsx', '-c', '-s']
    bare = cjsx.settings.get('bare')
    if bare:
        command += ['-b']
    for filename, data in resources:
        process = subprocess.Popen(command,
            stdin=subprocess.PIPE,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE)
        out, err = process.communicate(data)
        if process.returncode:
            yield None, err
        else:
            dest = replaceExt(filename, '.js')
            yield dest, out

每个扩展名接收一个iterable对象,该对象生成每个文件的名称和内容。函数必须返回一个iterable对象,其格式与结果文件的格式相同。将新文件名返回为None将被解释为错误。

变量<function_name>.settings保存一个字典,其中包含扩展初始化中提供的关键字,例如cjsx(bare=True)

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

推荐PyPI第三方库


热门话题
java创建猜谜游戏程序   JavaWebSocketContainer。connectToServer似乎挂起了   如何在java中中断函数   java c#socket client multiple BeginSend()未到达服务器   不可见的组件然后在Java中的窗格之间切换   java在应用程序类中使用静态接口安全吗?   java等待函数完成,直到回调到来   使用DataOutputStream时的java新行,Android   java服务对象的定义是什么?   基于视图的javahibernate复合密钥   java将varchar连接到char在JPA(oracle)中不起作用   如何在java中通过point类读取多个点?