zxlie 8 месяцев назад
Родитель
Сommit
4bef7d0462
3 измененных файлов с 22 добавлено и 2 удалено
  1. 1 2
      apps/background/monkey.js
  2. 20 0
      gulpfile.js
  3. 1 0
      package.json

+ 1 - 2
apps/background/monkey.js

@@ -1,4 +1,3 @@
-
 import InjectTools from './inject-tools.js';
 
 export default (() => {
@@ -73,7 +72,7 @@ export default (() => {
 
             chrome.storage.local.get(PAGE_MONKEY_LOCAL_STORAGE_KEY, (resps) => {
                 let cacheMonkeys, storageMode = false;
-                if (!resps || !resps[PAGE_MONKEY_LOCAL_STORAGE_KEY]) {
+                if ((!resps || !resps[PAGE_MONKEY_LOCAL_STORAGE_KEY]) && typeof localStorage !== 'undefined') {
                     cacheMonkeys = localStorage.getItem(PAGE_MONKEY_LOCAL_STORAGE_KEY) || '[]';
                     storageMode = true;
                 } else {

+ 20 - 0
gulpfile.js

@@ -20,6 +20,7 @@ let shell = require('shelljs');
 let babel = require('gulp-babel');
 let assert = require('assert');
 let gulpIf = require('gulp-if');
+let imagemin = require('gulp-imagemin');
 
 let isSilentDetect = false; // <-- 添加全局标志位
 
@@ -118,6 +119,23 @@ function processCss() {
     return gulp.src('apps/**/*.css').pipe(cssMerge()).pipe(uglifycss()).pipe(gulp.dest('output/apps'));
 }
 
+// 添加图片压缩任务
+function compressImages() {
+    return gulp.src('output/apps/**/*.{png,jpg,jpeg,gif,svg}') // 源目录应为 output
+        .pipe(imagemin([
+            imagemin.gifsicle({interlaced: true}),
+            imagemin.mozjpeg({quality: 75, progressive: true}),
+            imagemin.optipng({optimizationLevel: 5}),
+            imagemin.svgo({
+                plugins: [
+                    {removeViewBox: true},
+                    {cleanupIDs: false}
+                ]
+            })
+        ]))
+        .pipe(gulp.dest('output/apps')); // 覆盖回 output
+}
+
 // 清理冗余文件,并且打包成zip,发布到chrome webstore
 function zipPackage(cb) {
     // 读取manifest文件
@@ -486,6 +504,7 @@ gulp.task('json', processJson);
 gulp.task('html', processHtml);
 gulp.task('js', processJs);
 gulp.task('css', processCss);
+gulp.task('compressImages', compressImages);
 gulp.task('zip', zipPackage);
 gulp.task('edge', edgePackage);
 gulp.task('firefox', firefoxPackage);
@@ -499,6 +518,7 @@ gulp.task('default',
     gulp.series(
         cleanOutput, 
         gulp.parallel(copyAssets, processCss, processJs, processHtml, processJson), 
+        compressImages,
         setSilentDetect,
         detectUnusedFiles,
         unsetSilentDetect,

+ 1 - 0
package.json

@@ -15,6 +15,7 @@
     "gulp-copy": "^1.1.0",
     "gulp-htmlmin": "^4.0.0",
     "gulp-if": "^3.0.0",
+    "gulp-imagemin": "^7.1.0",
     "gulp-jsonminify": "^1.1.0",
     "gulp-uglify-es": "^3.0.0",
     "gulp-uglifycss": "^1.0.9",