@devflow-tools/plugin-performance 0.11.0 → 0.12.6

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/plugin-performance",
3
- "version": "0.11.0",
3
+ "version": "0.12.6",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -26,5 +26,5 @@
26
26
  "files": [
27
27
  "dist"
28
28
  ],
29
- "gitHead": "ff6ac69b0f3cc95cb32ffe8bcbf21b24767aa914"
29
+ "gitHead": "d544427472016eb332c6c2107f0fc98d8ae59c14"
30
30
  }
@@ -1,3 +0,0 @@
1
- import type { AnalysisResult } from './types.js';
2
- export declare function auditPerformance(projectRoot: string): AnalysisResult;
3
- //# sourceMappingURL=audit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/analyzers/audit.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAoDpE"}
@@ -1,72 +0,0 @@
1
- import { readFileSync } from 'fs';
2
- import { readdirSync, statSync } from 'fs';
3
- import { join, relative } from 'path';
4
- import { execSync } from 'child_process';
5
- export function auditPerformance(projectRoot) {
6
- const findings = [];
7
- let bundleSize = 'unknown';
8
- try {
9
- const result = execSync('du -sh dist 2>/dev/null || du -sh build 2>/dev/null || echo "unknown"', {
10
- cwd: projectRoot, encoding: 'utf-8',
11
- });
12
- bundleSize = result.trim().split('\t')[0] || 'unknown';
13
- }
14
- catch { }
15
- const files = scanProjectFiles(projectRoot);
16
- for (const file of files) {
17
- const content = readFileSync(file, 'utf-8');
18
- const relPath = relative(projectRoot, file);
19
- // Check package.json for large dependencies
20
- if (file.endsWith('package.json')) {
21
- try {
22
- const pkg = JSON.parse(content);
23
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
24
- const largeDeps = ['moment', 'lodash', 'ramda', 'jquery'];
25
- for (const dep of largeDeps) {
26
- if (deps[dep]) {
27
- findings.push({
28
- severity: 'warning',
29
- category: 'large-dependency',
30
- title: `大依赖 ${dep}`,
31
- description: `${dep} 体积较大,建议替换为轻量替代`,
32
- file: relPath,
33
- suggestion: dep === 'moment' ? '替换为 dayjs' : dep === 'lodash' ? '使用 lodash-es 或按需导入' : undefined,
34
- });
35
- }
36
- }
37
- }
38
- catch { }
39
- }
40
- }
41
- return {
42
- success: true,
43
- summary: `性能审计完成,发现 ${findings.length} 个优化项`,
44
- findings,
45
- metrics: { bundleSize, filesScanned: files.length },
46
- data: { bundleSize, recommendations: findings },
47
- };
48
- }
49
- function scanProjectFiles(root) {
50
- const files = [];
51
- function walk(dir) {
52
- try {
53
- for (const entry of readdirSync(dir)) {
54
- if (['node_modules', 'dist', 'build', '.git'].includes(entry))
55
- continue;
56
- const fullPath = join(dir, entry);
57
- try {
58
- const stat = statSync(fullPath);
59
- if (stat.isDirectory())
60
- walk(fullPath);
61
- else
62
- files.push(fullPath);
63
- }
64
- catch { }
65
- }
66
- }
67
- catch { }
68
- }
69
- walk(root);
70
- return files;
71
- }
72
- //# sourceMappingURL=audit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/analyzers/audit.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- export interface AnalysisResult {
2
- success: boolean;
3
- summary: string;
4
- findings?: Finding[];
5
- metrics?: Record<string, number | string>;
6
- data?: unknown;
7
- error?: string;
8
- }
9
- export interface Finding {
10
- severity: 'critical' | 'warning' | 'info' | 'suggestion';
11
- category: string;
12
- title: string;
13
- description: string;
14
- file?: string;
15
- line?: number;
16
- suggestion?: string;
17
- codeSnippet?: string;
18
- }
19
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analyzers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,CAAC;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/analyzers/types.ts"],"names":[],"mappings":""}
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { DevFlowPlugin } from "@devflow-tools/sdk";
2
- export declare const performancePlugin: DevFlowPlugin;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,eAAO,MAAM,iBAAiB,EAAE,aAskD/B,CAAC"}