【问题标题】:gruntfile files named patterns, possible?gruntfile 文件命名为模式,可能吗?
【发布时间】:2013-11-30 17:01:53
【问题描述】:

我在玩 Ghost,我想让 gruntfile 从我的主题编译 sass 文件。

所以我从修改sass任务开始:

...
sass: {
    admin: {
        files: {
            '<%= paths.adminAssets %>/css/screen.css': '<%= paths.adminAssets %>/sass/screen.scss'
        }
    },
    themes: {
        files:{
            'content/themes/**/css/ie.css': 'content/themes/**/src/sass/ie.sass',
            'content/themes/**/css/print.css': 'content/themes/**/src/sass/print.sass',
            'content/themes/**/css/screen.css': 'content/themes/**/src/sass/screen.sass'
        }
    }
}
...

我意识到我可以将其简化为:

...
sass: {
    admin: {
        files: {
            '<%= paths.adminAssets %>/css/screen.css': '<%= paths.adminAssets %>/sass/screen.scss'
        }
    },
    themes: {
        files:{
            'content/themes/**/css/*.css': 'content/themes/**/src/sass/*.sass',
        }
    }
}
...

但后来我在想,为什么不将目标中的星星替换为与源匹配的星星?

最终它只是创建了以下内容:

$ ls -al ./content/themes/
total 0
drwxrwxr-x 1 zenobius zenobius  50 Nov 18 02:10 .
drwxrwxr-x 1 zenobius zenobius  46 Nov 15 11:02 ..
drwxrwxr-x 1 zenobius zenobius   6 Nov 18 02:10 **         <----- sigh
drwxrwxr-x 1 zenobius zenobius 128 Nov 15 11:02 casper
drwxrwxr-x 1 zenobius zenobius 250 Nov 18 00:08 crycilium

我想我的问题是真的:

  • 我可以使用某种正则表达式命名模式
  • 我可以使用文件选项中的函数来处理作为目标的输出名称吗?

【问题讨论】:

    标签: node.js sass gruntjs glob


    【解决方案1】:

    所以解决方案是使用grunt.file.expandMapping,(感谢:https://stackoverflow.com/a/16672303/454615):

                ...
                themes: {
                    files: grunt.file.expandMapping([
                        "content/themes/**/src/**/*.sass",
                        "!content/themes/**/src/**/_*.sass",
                      ], '', {
                      expand: true,
                      ext: '.css',
                      rename: function(base, src) {
                        grunt.log.write(base + " " + src);
                        return src.replace('/src/', '/../'); // or some variation
                      }
                    })
                }
                ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-10
      • 2013-08-12
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      相关资源
      最近更新 更多