|
@@ -359,10 +359,11 @@ this.SingleFileCore = (() => {
|
|
|
|
|
|
|
|
removeUnusedCSSRules() {
|
|
removeUnusedCSSRules() {
|
|
|
const doc = this.doc;
|
|
const doc = this.doc;
|
|
|
|
|
+ const rulesCache = {};
|
|
|
doc.querySelectorAll("style").forEach(style => {
|
|
doc.querySelectorAll("style").forEach(style => {
|
|
|
const cssRules = [];
|
|
const cssRules = [];
|
|
|
if (style.sheet) {
|
|
if (style.sheet) {
|
|
|
- DomProcessorHelper.processRules(this.doc, style.sheet.cssRules, cssRules);
|
|
|
|
|
|
|
+ DomProcessorHelper.processRules(this.doc, style.sheet.cssRules, cssRules, rulesCache);
|
|
|
const stylesheetContent = cssRules.join("");
|
|
const stylesheetContent = cssRules.join("");
|
|
|
style.textContent = this.options.compressCSS ? this.dom.uglifycss(stylesheetContent) : stylesheetContent;
|
|
style.textContent = this.options.compressCSS ? this.dom.uglifycss(stylesheetContent) : stylesheetContent;
|
|
|
}
|
|
}
|
|
@@ -688,7 +689,7 @@ this.SingleFileCore = (() => {
|
|
|
}));
|
|
}));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- static processRules(doc, rules, cssRules, cache = {}) {
|
|
|
|
|
|
|
+ static processRules(doc, rules, cssRules, cache) {
|
|
|
if (rules) {
|
|
if (rules) {
|
|
|
Array.from(rules).forEach(rule => {
|
|
Array.from(rules).forEach(rule => {
|
|
|
if (rule.media) {
|
|
if (rule.media) {
|