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 を使用しています。@importすべてのs を一番上に移動するより良い代替手段はありますか? できればnpmパッケージで提供されることをお勧めします。

更新: clean-cssにも同じ問題があります。

4

0 に答える 0