すべての 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にも同じ問題があります。