任务执行器类似于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无法从spring resttemplate访问sms网关   使用spark上下文方法参数的java并行化集合不正确   java中ReadLock的并发检查副本   java基于属性比较两个列表是否具有相同的元素   字符串Java文本块:缩进前缀中的制表符和空格的混合   java如何将带有@SpringBootApplication的maven模块作为测试范围中的依赖项添加到另一个maven模块   我需要一些关于在Java中使用2个jar文件的帮助   mysql JPA Java Spring Boot执行查找/连接表   java对话框选择具有特定名称的文件   java如何修复Spring工具套件4中的端口8080错误?   Java中的apache poi Excel阅读器   java如何在tomcat访问日志中记录线程上下文值   java有一种方法可以创建类<T>的实例,该类将类作为传递泛型的构造函数中的参数   默认情况下,java GORM onetomany映射执行即时抓取   java不能在安卓中接受全局变量   统计系统的java MongoDB异步驱动程序排名   java如何解析:无法解析插件“org.springframework.ide.eclipse.ui”?   用Java从一副牌中随机抽取5张牌   javaapachecamel动态消费者   java如何克服使用Flood Fill 4算法时的“薄边界”问题?