Heim >WeChat-Applet >Mini-Programmentwicklung >Zur Optimierung des CSS-Treeshakes in Miniprogrammen
In der Kolumne „WeChat Mini Program Development Tutorial“ erfahren Sie, wie Sie CSS-Treeshaking in Miniprogrammen optimieren.
em... Der Grund, warum ich dieses Tool geschrieben habe, ist, ein für alle Mal mehr zu streicheln, weniger Gehirne zu verschwenden und weniger Fehler zu machen!Jedes Mal, wenn ich eine alte Seite teilweise überarbeite, werde ich das alte CSS nicht löschen. Weil es sehr mühsam ist und ich Angst habe, versehentlich unvorhersehbare Stile zu löschen. Also füge ich grundsätzlich in der letzten Zeile der CSS-Datei neue Stile hinzu, und dann... wird die CSS-Datei immer größer. Um dieses Problem des manuellen Löschens von CSS zu lösen, wurde ein kleines Tool entwickelt.
Unser letzter Effekt besteht darin, das CSS-Treeshaking über Terminalbefehle abzuschließen.
// 到项目目录下cd Documents/xxx/xcx// 微信qts-lint css wx// 支付宝qts-lint css alipay复制代码Nach der globalen Installation wird der Befehl lint xxxx erkannt. Ist das nicht sehr einfach? Wenn Sie den Commander im Detail vorstellen, können Sie sich die Dokumentation selbst ansehen.
{ "name": "xxx", "version": "1.0.0", "description": "小程序代码", "bin": { "qts-lint": "./bin.js" } }复制代码
const program = require("commander"); program .command("css <app-type>") // 参数 .description("格式化,css tree-shaking") // 描述 .action((type, command) => { // do something... });复制代码</app-type>Aber die Seite enthält immer noch Komponenten und Referenzen, daher müssen wir auch die Komponenten CSS, JS, WXML abrufen. Wenn es sich um eine Komponente handelt, fügen Sie sie dem übergeordneten Seitenarray hinzu und speichern Sie sie Eigenes Schlüssel-Wert-PaarAnalyse der WXML-Datei, Abrufen der Referenz, Hinzufügen des Referenzpfads zum Array
Parsen der referenzierten Datei, Bestimmen, ob noch eine referenzierte Datei vorhanden ist, falls vorhanden, zurück zu Schritt 1
{ "pages": [ "pages/index/index", "pages/login/login", ... ], "subPackages": [ { "root": "mine", "pages": [ "/index/index", ... ] } ], ... }复制代码
Warum muss das CSS der aktuellen Seite sein? mit der wxml und js der Komponente verbunden?
Da Alipay über eine Stildurchdringung verfügt und unser Projekt von mehreren Personen entwickelt wird, befürchten wir, dass der Stil der Komponente auf der Seite geschrieben wird, die Komponente jedoch nicht. Deshalb haben wir diese Art der Kompatibilität hergestellt.
function readPages(json = {}, root) { let pages = (json.pages || []).map(p => path.join(root, p)); json.subPackages && json.subPackages.forEach(element => { pages = pages.concat(element.pages.map(p => path.join(root, element.root, p))); }); return pages; }复制代码Paket /xcx…
{ "css url": ["js url", "wxml url", ...] }复制代码
{ // 页面css "/pages/index/index.css": [ // 页面 "/pages/index/index.js", "/pages/index/index.wxml", // 组件 "/pages/components/title/index.js", "/pages/components/title/index.wxml", // 引用模版 "/pages/template/index.wxml" ], // 组件css "/pages/xxx/xxx.css":[ // 父页面 "/pages/index/index.js", "/pages/index/index.wxml", // 组件的页面 "/pages/index/index.js", "/pages/index/index.wxml", ... ], ... }复制代码
purify('css url', [...], options)复制代码
Verwandte kostenlose Lernempfehlungen:
WeChat Mini Program Development Tutorial
Das obige ist der detaillierte Inhalt vonZur Optimierung des CSS-Treeshakes in Miniprogrammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!