Heim  >  Artikel  >  WeChat-Applet  >  Ausführliche Erklärung zur Optimierung Ihres WeChat-Miniprogramms

Ausführliche Erklärung zur Optimierung Ihres WeChat-Miniprogramms

零下一度
零下一度Original
2017-05-23 23:29:402530Durchsuche

Dieser Artikel führt Sie hauptsächlich in die relevanten Informationen zum Abnehmen mit dem WeChat-Applet ein. Die Einführung im Artikel ist sehr detailliert und bietet einen gewissen Referenz- und Lernwert für alle Freunde, die sie benötigen.

Vorwort

Wie wir alle wissen, gibt es bei der Veröffentlichung des WeChat-Applets eine Größenbeschränkung von 1 Million für übermittelten Code! Wenn Sie also ein kleines Programm mit einer etwas komplexeren Funktion schreiben, müssen Sie immer sorgfältig darauf achten, ob Ihr Code dieses Endergebnis erreicht.

Zu Beginn des Entwurfs eines kleinen Programms müssen wir uns auf diesen Punkt konzentrieren und einige Methoden anwenden, um zu vermeiden, dass dieses Problem zu früh auftritt.

Vermeiden Sie die Verwendung großer lokaler Bilder und großer Ressourcendateien

  • Bitte vermeiden Sie die Verwendung großer Bilder auf der Benutzeroberfläche des Mini Programm Wenn Sie wirklich große Bilder verwenden möchten, fügen Sie die Bilder bitte nicht in den lokalen Code des Miniprogramms ein. Sie sollten die Bilder von einer Remote-URL-Adresse laden

  • Auf diese Weise können Sie vermeiden, große Bilder, große Ressourcendateien usw. in das Release-Paket des Miniprogramms zu packen.

  • Machen Sie Ihren Code nicht zu ausführlich

Überlegen Sie auf der

JavaScript

-Codeebene sorgfältig Ihre Codelogik Schreiben Sie nicht viel sehr einfache Logik. Bitte optimieren und rationalisieren Sie Ihren Code. Versuchen Sie auf Ansichtsebene, unnötige Verschachtelungen von Komponenten zu vermeiden. Wenn dies mit einer Ansicht möglich ist, fügen Sie keine weitere Ansichtsebene hinzu. Dies ist sowohl für die Reduzierung der Codegröße als auch für die Codeleistung gut :)

Verwenden Sie Tools, um Code zu komprimieren und zu optimieren


In der heutigen Welt

HTML5

Bei der Entwicklung und Veröffentlichung von Web-Front-End-Projekten verwenden wir normalerweise einige Front-End-Engineering-Tools zur Verarbeitung unseres Codes, wie z. B. Gulp, kombiniert mit einigen funktionalen Plug-Ins, wie z. B. uglify, cssnano, htmlmin , usw. Durch die Verwendung dieser Tools kann die Codegröße kleiner werden (ca. 20 % bis 30 %). Glücklicherweise sind diese Tools auch für die Entwicklung kleinerer Programme absolut nützlich! Durch die einfache Verwendung dieser Tools können wir unseren Code so stark reduzieren, warum nicht? !

Im Miniprogramm haben wir ungefähr die folgenden Dateitypen, die mit Tools optimiert werden können:

1,

JSON

Dateien

Wir können jsonminify verwenden, um JSON-Dateien zu komprimieren und zusätzliche Leerzeichen in JSON-Dateien zu entfernen

2. JavaScript-Dateien

Verwenden Sie uglify, um die Syntax von JS-Code zu optimieren und Textkomprimierung

3. WXML-Dateien

Mit htmlmin können Sie überschüssige Leerzeichen, Kommentare usw. in WXML-Dateien bereinigen

4 🎜 >

Sie können die von LESS bereitgestellten Funktionen verwenden, um das globale WXSS im Applet zusammenzuführen; verwenden Sie cssnano, um WXSS-Dateien zu bereinigen und zu komprimieren; verwenden Sie Autoprefixer, um Präfixe in verschiedenen Umgebungen zu WXSS hinzuzufügen, um eine gute Kompatibilität zu erreichen


5. Bilddateien

Durch die Verwendung von imagemin können Sie die Größe von Bilddateien optimieren


Das Folgende ist ein Gulp-Skript, das ich selbst verwende Referenz:

package.json

gulpfile.js

[Verwandte Empfehlungen ]
{
 "name": "myproject",
 "version": "1.0.0",
 "description": "my project",
 "author": "Kevin Zhang <zarknight@gmail.com>",
 "scripts": {
 "build:prod": "gulp build:prod",
 "build:clean": "gulp build:clean",
 "watch:clean": "gulp watch:clean",
 "start": "npm run watch:clean"
 },
 "devDependencies": {
 "autoprefixer": "^6.6.0",
 "babel-eslint": "^7.1.1",
 "babel-preset-latest": "^6.16.0",
 "del": "^2.2.2",
 "gulp": "^3.9.1",
 "gulp-babel": "^6.1.2",
 "gulp-cssnano": "^2.1.2",
 "gulp-eslint": "^3.0.1",
 "gulp-htmlmin": "^3.0.0",
 "gulp-if": "^2.0.2",
 "gulp-jsonlint": "^1.2.0",
 "gulp-jsonminify": "^1.0.0",
 "gulp-less": "^3.3.0",
 "gulp-load-plugins": "^1.4.0",
 "gulp-postcss": "^6.2.0",
 "gulp-rename": "^1.2.2",
 "gulp-sourcemaps": "^2.2.1",
 "gulp-uglify": "^2.0.0",
 "run-sequence": "^1.2.2"
 }
}

1.

Laden Sie den vollständigen Quellcode des WeChat-Applets herunter
const gulp = require(&#39;gulp&#39;)
const del = require(&#39;del&#39;)
const runSequence = require(&#39;run-sequence&#39;)
const autoprefixer = require(&#39;autoprefixer&#39;)
const $ = require(&#39;gulp-load-plugins&#39;)()

let prod = false

// -------------------- Clean --------------------------

gulp.task(&#39;clean&#39;, () => {
 return del([&#39;./dist/**&#39;])
})

// -------------------- Lint ---------------------------

gulp.task(&#39;eslint&#39;, () => {
 return gulp.src([&#39;./src/**/*.js&#39;])
 .pipe($.eslint())
 .pipe($.eslint.format())
 .pipe($.eslint.failAfterError())
})

gulp.task(&#39;jsonlint&#39;, () => {
 return gulp.src([&#39;./src/**/*.json&#39;])
 .pipe($.jsonlint())
 .pipe($.jsonlint.reporter())
 .pipe($.jsonlint.failAfterError())
})

// -------------------- JSON ---------------------------

gulp.task(&#39;json&#39;, [&#39;jsonlint&#39;], () => {
 return gulp.src(&#39;./src/**/*.json&#39;)
 .pipe($.if(prod, $.jsonminify()))
 .pipe(gulp.dest(&#39;./dist&#39;))
})

gulp.task(&#39;json:watch&#39;, () => {
 gulp.watch(&#39;./src/**/*.json&#39;, [&#39;json&#39;])
})

// -------------------- Assets --------------------------

gulp.task(&#39;assets&#39;, () => {
 return gulp.src(&#39;./src/assets/**&#39;)
 .pipe(gulp.dest(&#39;./dist/assets&#39;))
})

gulp.task(&#39;assets:watch&#39;, () => {
 gulp.watch(&#39;./src/assets/**&#39;, [&#39;assets&#39;])
})

// -------------------- WXML -----------------------------

gulp.task(&#39;templates&#39;, () => {
 return gulp.src(&#39;./src/**/*.wxml&#39;)
 .pipe($.if(prod, $.htmlmin({
 collapseWhitespace: true,
 removeComments: true,
 keepClosingSlash: true
 })))
 .pipe(gulp.dest(&#39;./dist&#39;))
})

gulp.task(&#39;templates:watch&#39;, () => {
 gulp.watch(&#39;./src/**/*.wxml&#39;, [&#39;templates&#39;])
})

// -------------------- WXSS ------------------------------

gulp.task(&#39;styles&#39;, () => {
 return gulp.src([&#39;./src/**/*.wxss&#39;, &#39;!./src/styles/**&#39;])
 .pipe($.less())
 .pipe($.postcss([
 autoprefixer([
 &#39;iOS >= 8&#39;,
 &#39;Android >= 4.1&#39;
 ])
 ]))
 .pipe($.if(prod, $.cssnano()))
 .pipe($.rename((path) => path.extname = &#39;.wxss&#39;))
 .pipe(gulp.dest(&#39;./dist&#39;))
})

gulp.task(&#39;styles:watch&#39;, () => {
 gulp.watch(&#39;./src/**/*.wxss&#39;, [&#39;styles&#39;])
})

// -------------------- JS --------------------------------

gulp.task(&#39;scripts&#39;, [&#39;eslint&#39;], () => {
 return gulp.src(&#39;./src/**/*.js&#39;)
 .pipe($.babel())
 .pipe($.if(prod, $.uglify()))
 .pipe(gulp.dest(&#39;./dist&#39;))
})

gulp.task(&#39;scripts:watch&#39;, () => {
 gulp.watch(&#39;./src/**/*.js&#39;, [&#39;scripts&#39;])
})

// ---------------------------------------------------------

gulp.task(&#39;build&#39;, [
 &#39;json&#39;,
 &#39;assets&#39;,
 &#39;templates&#39;,
 &#39;styles&#39;,
 &#39;scripts&#39;
])

gulp.task(&#39;watch&#39;, [
 &#39;json:watch&#39;,
 &#39;assets:watch&#39;,
 &#39;templates:watch&#39;,
 &#39;styles:watch&#39;,
 &#39;scripts:watch&#39;
])

gulp.task(&#39;build:clean&#39;, (callback) => {
 runSequence(&#39;clean&#39;, &#39;build&#39;, callback)
})

gulp.task(&#39;watch:clean&#39;, (callback) => {
 runSequence(&#39;build:clean&#39;, &#39;watch&#39;, callback)
})

gulp.task(&#39;build:prod&#39;, (callback) => {
 prod = true
 runSequence(&#39;build:clean&#39;, callback)
})

gulp.task(&#39;default&#39;, [&#39;watch:clean&#39;])

2 Klicken Sie auf das Änderungssymbol in der Tableiste

3.

Demo des WeChat-Miniprogramms: Lezhu

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Optimierung Ihres WeChat-Miniprogramms. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn