Explication détaillée de l'optimisation de votre mini programme WeChat

零下一度
Libérer: 2017-05-23 23:29:40
original
2610 Les gens l'ont consulté

Cet article vous présente principalement les informations pertinentes sur la perte de poids de l'applet WeChat. L'introduction dans l'article est très détaillée et a une certaine valeur de référence et d'apprentissage pour tous les amis qui en ont besoin peuvent y jeter un œil ci-dessous.

Avant-propos

Comme nous le savons tous, lorsque l'applet WeChat est publiée, il y a une limite de taille de 1 M pour le code soumis ! Par conséquent, si vous écrivez un petit programme avec une fonction légèrement plus complexe, vous devez toujours faire très attention à savoir si votre code est sur le point d'atteindre ce résultat.

Au début de la conception d'un petit programme, il faut se concentrer sur ce point et adopter quelques méthodes pour éviter de rencontrer ce problème trop tôt.

Évitez d'utiliser de grandes images locales et des fichiers de ressources volumineux

  • Veuillez éviter d'utiliser de grandes images sur l'interface utilisateur du mini programme Si vous souhaitez vraiment utiliser de grandes images, veuillez ne pas mettre les images dans le code local du mini programme. Vous devez charger les images à partir d'une adresse URL distante

  • De cette façon, vous pouvez éviter de regrouper des images volumineuses, des fichiers de ressources volumineux, etc. dans le package de version du mini-programme.

  • Ne rendez pas votre code trop verbeux

Au niveau du code

JavaScript

, veuillez examiner attentivement la logique de votre code , n'écrivez pas beaucoup de logique très simple, veuillez optimiser et rationaliser votre code.

Au niveau de la vue, essayez d'éviter l'imbrication inutile de composants. Si vous pouvez le faire avec une seule vue, n'ajoutez pas une autre couche de vues. C'est bon à la fois pour la réduction de la taille du code et pour les performances du code :) Utilisez des outils pour compresser et optimiser le code

Dans le monde d'aujourd'hui
HTML5

Dans le développement et la publication de projets Web front-end, nous utilisons généralement des outils d'ingénierie front-end pour traiter notre code, tels que Gulp, combinés à certains plug-ins fonctionnels, tels que : uglify, cssnano, htmlmin , etc. L'utilisation de ces outils peut réduire la taille de notre code (environ 20 % à 30 %).

Heureusement, ces outils sont également tout à fait utiles pour le développement de petits programmes ! En utilisant simplement ces outils, nous pouvons réduire considérablement notre code, pourquoi pas ? ! Dans le mini programme, nous avons à peu près les types de fichiers suivants qui peuvent être optimisés à l'aide d'outils :

1, JSON

fichiers

Nous pouvons utiliser jsonminify pour compresser les fichiers JSON et supprimer les espaces supplémentaires dans les fichiers JSON2 fichiers JavaScript

Utilisez uglify pour optimiser la syntaxe du code JS. et compression de texte
3. Fichiers WXML

En utilisant htmlmin, vous pouvez nettoyer les espaces excédentaires, les commentaires, etc. dans les fichiers WXML


4. 🎜 >

Vous pouvez utiliser les fonctionnalités fournies par LESS pour fusionner le WXSS global dans l'applet ; utiliser cssnano pour nettoyer et compresser les fichiers WXSS ; utiliser le préfixe automatique pour ajouter des préfixes dans différents environnements à WXSS afin d'obtenir une bonne compatibilité

5. Fichiers image

En utilisant imagemin, vous pouvez optimiser la taille des fichiers image


Ce qui suit est un script Gulp que j'utilise moi-même pour votre. référence :

package.json


gulpfile.js

[Recommandations associées ]

{
 "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"
 }
}
Copier après la connexion
1.

Téléchargez le code source complet de l'applet WeChat

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;])
Copier après la connexion

2 Cliquez sur l'icône de changement de barre d'onglets

3 .

Démo du mini programme WeChat : Lezhu

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal