3

我写了一个小脚本来收集我所有的 CSS 文件并压缩它们:

var cssSources = [];

bundle.input.stylesheets.forEach(function(filename) {
    if(isLocalPath(filename)) {
        var fileContents = FileSystem.readFileSync(filename, {encoding: 'utf8'});
        if(/\.css$/.test(filename)) {
            cssSources.push(fileContents);
        } else if(/\.less$/.test(filename)) {
            var parser = new Less.Parser({
                paths: [staticDir],
                filename: filename
            });
            parser.parse(fileContents, function(e, tree) {
                cssSources.push(tree.toCSS());
            });
        }
    }
});

var cssCode = UglifyCSS.processString(cssSources.join(''));

直到我尝试在一个没有首先@import包含的 CSS 文件中使用一种字体之前,它一直运行良好。这意味着在我压缩的 CSS 中间的某个地方结束了,这当然是行不通的。@import

您可能已经注意到,我目前正在使用 UglifyCSS;有没有更好的选择可以将所有@imports 移到顶部?最好以npm包装形式提供。

更新: clean-css有同样的问题。

4

0 回答 0