@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 +2 -2
- package/dist/analyzers/audit.d.ts +0 -3
- package/dist/analyzers/audit.d.ts.map +0 -1
- package/dist/analyzers/audit.js +0 -72
- package/dist/analyzers/audit.js.map +0 -1
- package/dist/analyzers/types.d.ts +0 -19
- package/dist/analyzers/types.d.ts.map +0 -1
- package/dist/analyzers/types.js +0 -2
- package/dist/analyzers/types.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -1603
- package/dist/index.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devflow-tools/plugin-performance",
|
|
3
|
-
"version": "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": "
|
|
29
|
+
"gitHead": "d544427472016eb332c6c2107f0fc98d8ae59c14"
|
|
30
30
|
}
|
|
@@ -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"}
|
package/dist/analyzers/audit.js
DELETED
|
@@ -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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,QAAQ,GAOT,EAAE,CAAC;IAER,IAAI,UAAU,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,uEAAuE,EAAE;YAC/F,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO;SACpC,CAAC,CAAC;QACH,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE5C,4CAA4C;QAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;gBAC7D,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC1D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;oBAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBACd,QAAQ,CAAC,IAAI,CAAC;4BACZ,QAAQ,EAAE,SAAS;4BACnB,QAAQ,EAAE,kBAAkB;4BAC5B,KAAK,EAAE,OAAO,GAAG,EAAE;4BACnB,WAAW,EAAE,GAAG,GAAG,iBAAiB;4BACpC,IAAI,EAAE,OAAO;4BACb,UAAU,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;yBACjG,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,aAAa,QAAQ,CAAC,MAAM,OAAO;QAC5C,QAAQ;QACR,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE;QACnD,IAAI,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,SAAS,IAAI,CAAC,GAAW;QACvB,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAChC,IAAI,IAAI,CAAC,WAAW,EAAE;wBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;;wBAClC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -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"}
|
package/dist/analyzers/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/analyzers/types.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
DELETED
package/dist/index.d.ts.map
DELETED
|
@@ -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"}
|