pug-site-core 2.0.12 → 2.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.js +2 -2
  2. package/lib/imagemin.js +28 -14
  3. package/package.json +10 -11
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { startDevServer } from "./lib/devServer.js";
2
2
  import { translateLanguageData } from "./lib/translate.js";
3
- import { compressImages, processImagemin } from "./lib/imagemin.js";
3
+ import { processImagemin } from "./lib/imagemin.js";
4
4
  import {
5
5
  generateGetDataFn,
6
6
  compilePagesPugToFn,
@@ -17,7 +17,7 @@ export const pugSiteCore = {
17
17
  buildFn,
18
18
  buildStatic,
19
19
  translateLanguageData,
20
- compressImages,
20
+ processImagemin,
21
21
  };
22
22
 
23
23
  let curCmd = process.env.npm_lifecycle_event;
package/lib/imagemin.js CHANGED
@@ -10,7 +10,7 @@ import { paths } from './paths.js';
10
10
 
11
11
  /**
12
12
  * 压缩图片
13
- * @param {string} inputPath - 输入路径,相对于项目根目录
13
+ * @param {string} inputPath - 输入路径,可以是单个文件或目录,相对于项目根目录
14
14
  * @param {number} quality - 压缩质量 (0-1)
15
15
  * @returns {Promise<void>}
16
16
  */
@@ -30,19 +30,33 @@ export async function compressImages(inputPath, quality = 0.7) {
30
30
  quality = Math.max(0, Math.min(1, quality));
31
31
  console.log(`压缩质量: ${quality}`);
32
32
 
33
- // 获取所有图片文件
34
- const imagePatterns = [
35
- '**/*.jpg',
36
- '**/*.jpeg',
37
- '**/*.png',
38
- '**/*.gif',
39
- '**/*.svg'
40
- ];
41
-
33
+ // 检查输入路径是文件还是目录
34
+ const stats = await fse.stat(targetPath);
42
35
  let imageFiles = [];
43
- for (const pattern of imagePatterns) {
44
- const files = await glob(pattern, { cwd: targetPath, absolute: true });
45
- imageFiles = [...imageFiles, ...files];
36
+
37
+ if (stats.isFile()) {
38
+ // 如果是单个文件,检查是否为支持的图片格式
39
+ const ext = path.extname(targetPath).toLowerCase();
40
+ if (['.jpg', '.jpeg', '.png', '.gif', '.svg'].includes(ext)) {
41
+ imageFiles = [targetPath];
42
+ } else {
43
+ console.log('不支持的文件格式,仅支持jpg、jpeg、png、gif、svg格式');
44
+ return;
45
+ }
46
+ } else {
47
+ // 如果是目录,获取所有图片文件
48
+ const imagePatterns = [
49
+ '**/*.jpg',
50
+ '**/*.jpeg',
51
+ '**/*.png',
52
+ '**/*.gif',
53
+ '**/*.svg'
54
+ ];
55
+
56
+ for (const pattern of imagePatterns) {
57
+ const files = await glob(pattern, { cwd: targetPath, absolute: true });
58
+ imageFiles = [...imageFiles, ...files];
59
+ }
46
60
  }
47
61
 
48
62
  if (imageFiles.length === 0) {
@@ -62,7 +76,7 @@ export async function compressImages(inputPath, quality = 0.7) {
62
76
 
63
77
  // 处理每个目录中的图片
64
78
  for (const [dir, files] of Object.entries(filesByDir)) {
65
- const relativeDir = path.relative(targetPath, dir);
79
+ const relativeDir = path.relative(stats.isFile() ? path.dirname(targetPath) : targetPath, dir);
66
80
  // 记录原始文件大小
67
81
  const originalSizes = {};
68
82
  let validFiles = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pug-site-core",
3
- "version": "2.0.12",
3
+ "version": "2.0.14",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -36,10 +36,16 @@
36
36
  "pug": "^3.0.3",
37
37
  "tcp-port-used": "^1.0.2",
38
38
  "uglify-js": "^3.19.3",
39
- "ws": "^8.18.0"
39
+ "ws": "^8.18.0",
40
+ "glob": "^10.3.10",
41
+ "imagemin": "^8.0.1",
42
+ "imagemin-gifsicle": "^7.0.0",
43
+ "imagemin-mozjpeg": "^10.0.0",
44
+ "imagemin-pngquant": "^9.0.2",
45
+ "imagemin-svgo": "^10.0.1"
40
46
  },
41
47
  "license": "ISC",
42
- "description": "增加图片压缩功能",
48
+ "description": "图片压缩模块导出问题",
43
49
  "files": [
44
50
  "lib/",
45
51
  "index.js"
@@ -47,12 +53,5 @@
47
53
  "exports": {
48
54
  ".": "./index.js"
49
55
  },
50
- "devDependencies": {
51
- "glob": "^10.3.10",
52
- "imagemin": "^8.0.1",
53
- "imagemin-gifsicle": "^7.0.0",
54
- "imagemin-mozjpeg": "^10.0.0",
55
- "imagemin-pngquant": "^9.0.2",
56
- "imagemin-svgo": "^10.0.1"
57
- }
56
+ "devDependencies": {}
58
57
  }