咕哝。包含子 (_*.jade) 时编译所有 .jade 文件

Posted

技术标签:

【中文标题】咕哝。包含子 (_*.jade) 时编译所有 .jade 文件【英文标题】:Grunt. Compile all .jade files when child (_*.jade) included 【发布时间】:2016-08-31 18:46:09 【问题描述】:

我有下一个结构:

jade
├── _skeleton.jade
├── _header.jade
├── _footer.jade
|
├── includes
│ └── _include-on-index.jade
│ └── _include-on-page-1.jade
│ └── _include-on-all-pages.jade
|
├── pages
│ └── index.jade
│ └── page-1.jade
│ └── page-2.jade
│ └── page-3.jade

我需要像一些应用程序一样设置jade compile(例如Prepros)。

这意味着如果我编辑page-3.jade我只需要编译page-3.jade,如果我编辑以_.jade开头的文件,我不需要编译这个_.jade 文件类似于 html,但我需要编译所有包含这个 _*.jade 文件的 .jade 文件

例如,当我编辑文件 _header.jade 时,我需要编译所有包含 _header.jade 的文件,如果我编辑 _include-on-index.jade 我需要编译不包含 _ 的文件,其中包含 _include-on-index.jade

我可以用 Grunt 做到这一点吗?

【问题讨论】:

【参考方案1】:

您可以使用 grunt-contrib-jadegrunt-contrib-watch 并为此玉文件插入一个手表。

假设您每次更改 .jade 文件时,手表都会看到此更改并编译您的文件。

假设我有这棵树:

玉/模板 我所有的 .jade 文件

jade/编译模板 包含我为 .html 编译的所有翡翠模板

jade 的配置:

//Jade ===============================
            config.jade = 
                    compile: 
                        options: 
                            client: false,
                            pretty: true
                        ,
                        files: [ 
                          cwd: "jade/templates",
                          src: "**/*.jade",
                          dest: "jade/compiled-templates",
                          expand: true,
                          ext: ".html"
                         ]
                    
                

手表配置:

    //Watch ===============================

    config.watch = 
         scripts: 
            files: ["jade/**/*.jade"]
            ,tasks: ["dev"]
         
    

我希望这能回答你的问题。

【讨论】:

感谢您的帮助!我尝试了这段代码,但是,当我只编辑一个文件时,它会编译所有文件。还有一个问题:它编译文件,以 _.jade 作为单个 html 开头。这是我的代码:codepen.io/anon/pen/zqexjK?editors=0010 Raduken,你能帮帮我吗? 我做个测试看看。 我做了一些测试,但我无法解决您的问题,看起来该任务已被弃用我建议您尝试寻找另一个,关于另一个问题,我建议您为您的 _.jade 使用玉包含:jade-lang.com/reference/includes,希望对你有所帮助。

以上是关于咕哝。包含子 (_*.jade) 时编译所有 .jade 文件的主要内容,如果未能解决你的问题,请参考以下文章

coffeescript、jade、stylus -> js、css 资产管理器?节点.js

pug模板引擎(原jade)之 注释条件包含

Jade学习之命令编译执行jade

最长公共子序列

java 两个字符串,求最长公共子串的长度

Jade模板引擎入门教程