1

我的 gruntfile 中有以下内容:

usemin: {
    html: ['<%= yeoman.dist %>/**/*.html'],
    css: ['<%= yeoman.dist %>/styles/**/*.css'],
    js: ['<%= yeoman.dist %>/scripts/**/*.js'],
    options: {
        assetsDirs: ['<%= yeoman.dist %>','<%= yeoman.dist %>/styles/**/*'],
        patterns: {
            js: [
                [/css:["']styles\/?.*\/(.*\.css)['"]/g, 'revved css resolves']
            ]
        }
    }
}

哪个做我想要的,给定一个引用 revved css 文件的 javascript 文件,它会替换该事件。但只是第一次出现。我需要它在全球范围内工作(因此使用'/g'修饰符。有任何线索吗?

输入是一个大致如下的文件:

foo:{includes:{css:"styles/something.css"}},bar:{includes:{css:"styles/something.css"}}

我最终得到的是(假设 0123456 是来自 rev 的哈希):

foo:{includes:{css:"styles/0123456.something.css"}},bar:{includes:{css:"styles/something.css"}}

我想要的是:

foo:{includes:{css:"styles/0123456.something.css"}},bar:{includes:{css:"styles/0123456.something.css"}}

谢谢。

4

1 回答 1

2

我的正则表达式太贪心了,我通过替换我的模式来解决这个问题,/css:"styles\/?[A-Za-z]*\/+([A-Za-z0-9]+\.css)"}/g现在我又开始做生意了。

于 2014-07-03T15:39:39.210 回答