assets-tracker 1.0.0 → 1.0.2
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/README.md +36 -19
- package/dist/analyzer.js +1 -0
- package/dist/analyzer.js.map +1 -0
- package/dist/config.d.ts +7 -0
- package/dist/config.js +27 -0
- package/dist/config.js.map +1 -0
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -0
- package/dist/scanner.d.ts +2 -2
- package/dist/scanner.js +5 -4
- package/dist/scanner.js.map +1 -0
- package/dist/ui.js +1 -0
- package/dist/ui.js.map +1 -0
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -3,20 +3,21 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/assets-tracker)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
|
-
**
|
|
6
|
+
**The ultimate unused assets detector for React, React Native, Web, and Mobile apps.**
|
|
7
7
|
|
|
8
|
-
`assets-tracker` is a modern, high-performance CLI tool designed to identify and remove unreferenced assets from your project. Whether
|
|
8
|
+
`assets-tracker` is a modern, high-performance CLI tool designed to identify and remove unreferenced assets from your project. Whether you're building a **React Web App**, a **React Native Mobile App (iOS/Android)**, or an **Expo** project, this tool helps you keep your repository lean and efficient.
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
## ✨ Features
|
|
13
13
|
|
|
14
|
+
- ⚛️ **React & React Native Optimized**: Built-in support for common patterns in modern frontend and mobile frameworks.
|
|
15
|
+
- 📱 **Cross-Platform**: perfect for Web, Mobile (iOS/Android), and Desktop applications.
|
|
14
16
|
- 🔍 **Deep Scan**: Identifies unused images, videos, fonts, and more across your entire project.
|
|
15
|
-
- 🛠️ **Smart Analysis**: Scans your source files (JS, TS, HTML, CSS, etc.) to detect asset references.
|
|
17
|
+
- 🛠️ **Smart Analysis**: Scans your source files (JS, TS, JSX, TSX, HTML, CSS, etc.) to detect asset references.
|
|
16
18
|
- 🏢 **Modern CLI**: Beautiful, interactive terminal interface with progress indicators and formatted reports.
|
|
17
19
|
- 🧹 **Interactive Cleanup**: Choose to delete all unused assets at once or select specific files to remove safely.
|
|
18
|
-
-
|
|
19
|
-
- 📉 **Size Reports**: View exactly how much space you can save.
|
|
20
|
+
- ⚙️ **Fully Configurable**: Customize extensions and ignore patterns via `.assettracker.json`.
|
|
20
21
|
|
|
21
22
|
---
|
|
22
23
|
|
|
@@ -52,6 +53,33 @@ npx assets-tracker clean
|
|
|
52
53
|
|
|
53
54
|
---
|
|
54
55
|
|
|
56
|
+
## ⚙️ Configuration
|
|
57
|
+
|
|
58
|
+
Create a `.assettracker.json` in your project root to customize the behavior:
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"assetExtensions": ["png", "jpg", "svg", "webp", "gif"],
|
|
63
|
+
"sourceExtensions": ["js", "jsx", "ts", "tsx", "html", "css"],
|
|
64
|
+
"ignorePatterns": [
|
|
65
|
+
"**/node_modules/**",
|
|
66
|
+
"**/dist/**",
|
|
67
|
+
"**/.expo/**",
|
|
68
|
+
"**/ios/build/**",
|
|
69
|
+
"**/android/app/build/**"
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Options
|
|
75
|
+
| Option | Description | Default |
|
|
76
|
+
| :--- | :--- | :--- |
|
|
77
|
+
| `assetExtensions` | Array of file extensions to treat as assets. | `["png", "jpg", ...]` |
|
|
78
|
+
| `sourceExtensions` | Array of file extensions to scan for references. | `["js", "ts", "jsx", "tsx", ...]` |
|
|
79
|
+
| `ignorePatterns` | Glob patterns of directories/files to ignore. | `["node_modules", "dist", ...]` |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
55
83
|
## 📂 Supported Asset Types
|
|
56
84
|
|
|
57
85
|
- **Images**: `.png`, `.jpg`, `.jpeg`, `.gif`, `.svg`, `.webp`, `.ico`
|
|
@@ -62,21 +90,10 @@ npx assets-tracker clean
|
|
|
62
90
|
|
|
63
91
|
## 🧠 How It Works
|
|
64
92
|
|
|
65
|
-
1. **Discovery**: The tool builds a list of all asset files in your project (excluding
|
|
66
|
-
2. **Analysis**: It
|
|
93
|
+
1. **Discovery**: The tool builds a list of all asset files in your project (excluding ignored paths).
|
|
94
|
+
2. **Analysis**: It parses your source code files (including JSX/TSX) to search for any mention of the asset's filename or relative path.
|
|
67
95
|
3. **Reporting**: Assets that aren't mentioned anywhere are marked as "unused".
|
|
68
|
-
4. **Action**: You get a detailed report and the option to delete them
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## 🛠️ Configuration (Coming Soon)
|
|
73
|
-
|
|
74
|
-
We are working on adding a `.assettracker.json` config file to allow:
|
|
75
|
-
- Custom asset extensions.
|
|
76
|
-
- Custom source directories.
|
|
77
|
-
- Exclusion patterns.
|
|
78
|
-
|
|
79
|
-
---
|
|
96
|
+
4. **Action**: You get a detailed report and the interactive option to delete them safely.
|
|
80
97
|
|
|
81
98
|
---
|
|
82
99
|
|
package/dist/analyzer.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAQ1B,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAmB,EAAE,WAAqB;IAClF,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAEjC,oEAAoE;IACpE,wEAAwE;IAExE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QAErC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEtD,iDAAiD;QACjD,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAE9B,qEAAqE;YACrE,gEAAgE;YAChE,8CAA8C;YAC9C,2CAA2C;YAC3C,4BAA4B;YAC5B,6BAA6B;YAC7B,4CAA4C;YAE5C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;YAC1E,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,MAAM,eAAe,KAAK,EAAE,GAAG,CAAC,CAAC;YAElE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChE,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEjF,OAAO;QACL,YAAY;QACZ,eAAe;KAChB,CAAC;AACJ,CAAC"}
|
package/dist/config.d.ts
ADDED
package/dist/config.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { DEFAULT_ASSET_EXTENSIONS, DEFAULT_SOURCE_EXTENSIONS, DEFAULT_IGNORE } from './scanner.js';
|
|
4
|
+
export const DEFAULT_CONFIG = {
|
|
5
|
+
assetExtensions: DEFAULT_ASSET_EXTENSIONS,
|
|
6
|
+
sourceExtensions: DEFAULT_SOURCE_EXTENSIONS,
|
|
7
|
+
ignorePatterns: DEFAULT_IGNORE
|
|
8
|
+
};
|
|
9
|
+
export async function loadConfig(cwd) {
|
|
10
|
+
const configPath = path.join(cwd, '.assettracker.json');
|
|
11
|
+
if (!(await fs.pathExists(configPath))) {
|
|
12
|
+
return DEFAULT_CONFIG;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
const userConfig = await fs.readJson(configPath);
|
|
16
|
+
return {
|
|
17
|
+
assetExtensions: userConfig.assetExtensions || DEFAULT_ASSET_EXTENSIONS,
|
|
18
|
+
sourceExtensions: userConfig.sourceExtensions || DEFAULT_SOURCE_EXTENSIONS,
|
|
19
|
+
ignorePatterns: userConfig.ignorePatterns || DEFAULT_IGNORE
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.warn(`\x1b[33m⚠ Warning: Failed to parse .assettracker.json: ${error.message}. Using defaults.\x1b[0m`);
|
|
24
|
+
return DEFAULT_CONFIG;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EACf,MAAM,cAAc,CAAC;AAQtB,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,eAAe,EAAE,wBAAwB;IACzC,gBAAgB,EAAE,yBAAyB;IAC3C,cAAc,EAAE,cAAc;CAC/B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IAExD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjD,OAAO;YACL,eAAe,EAAE,UAAU,CAAC,eAAe,IAAI,wBAAwB;YACvE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,IAAI,yBAAyB;YAC1E,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI,cAAc;SAC5D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,0DAA0D,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;QAChH,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { findAssets, findSourceFiles } from './scanner.js';
|
|
|
6
6
|
import { analyzeUnusedAssets } from './analyzer.js';
|
|
7
7
|
import { logger, createSpinner, formatAssetTable } from './ui.js';
|
|
8
8
|
import chalk from 'chalk';
|
|
9
|
+
import { loadConfig } from './config.js';
|
|
9
10
|
const program = new Command();
|
|
10
11
|
program
|
|
11
12
|
.name('assets-tracker')
|
|
@@ -13,10 +14,12 @@ program
|
|
|
13
14
|
.version('1.0.0');
|
|
14
15
|
async function runScan(cwd) {
|
|
15
16
|
logger.banner();
|
|
16
|
-
const spinner = createSpinner('
|
|
17
|
+
const spinner = createSpinner('Loading configuration...').start();
|
|
17
18
|
try {
|
|
18
|
-
const
|
|
19
|
-
|
|
19
|
+
const config = await loadConfig(cwd);
|
|
20
|
+
spinner.text = 'Scanning files...';
|
|
21
|
+
const assets = await findAssets(cwd, config.assetExtensions, config.ignorePatterns);
|
|
22
|
+
const sourceFiles = await findSourceFiles(cwd, config.sourceExtensions, config.ignorePatterns);
|
|
20
23
|
spinner.text = 'Analyzing references...';
|
|
21
24
|
const result = await analyzeUnusedAssets(assets, sourceFiles);
|
|
22
25
|
spinner.stop();
|
|
@@ -105,3 +108,4 @@ program.parse(process.argv);
|
|
|
105
108
|
if (!process.argv.slice(2).length) {
|
|
106
109
|
program.outputHelp();
|
|
107
110
|
}
|
|
111
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/scanner.d.ts
CHANGED
|
@@ -8,5 +8,5 @@ export interface AssetFile {
|
|
|
8
8
|
size: number;
|
|
9
9
|
extension: string;
|
|
10
10
|
}
|
|
11
|
-
export declare function findAssets(cwd: string, extensions?: string[]): Promise<AssetFile[]>;
|
|
12
|
-
export declare function findSourceFiles(cwd: string, extensions?: string[]): Promise<string[]>;
|
|
11
|
+
export declare function findAssets(cwd: string, extensions?: string[], ignore?: string[]): Promise<AssetFile[]>;
|
|
12
|
+
export declare function findSourceFiles(cwd: string, extensions?: string[], ignore?: string[]): Promise<string[]>;
|
package/dist/scanner.js
CHANGED
|
@@ -20,11 +20,11 @@ export const DEFAULT_IGNORE = [
|
|
|
20
20
|
'**/package-lock.json',
|
|
21
21
|
'**/tsconfig.json'
|
|
22
22
|
];
|
|
23
|
-
export async function findAssets(cwd, extensions = DEFAULT_ASSET_EXTENSIONS) {
|
|
23
|
+
export async function findAssets(cwd, extensions = DEFAULT_ASSET_EXTENSIONS, ignore = DEFAULT_IGNORE) {
|
|
24
24
|
const patterns = extensions.map(ext => `**/*.${ext}`);
|
|
25
25
|
const files = await globby(patterns, {
|
|
26
26
|
cwd,
|
|
27
|
-
ignore
|
|
27
|
+
ignore,
|
|
28
28
|
absolute: true
|
|
29
29
|
});
|
|
30
30
|
return Promise.all(files.map(async (file) => {
|
|
@@ -39,11 +39,12 @@ export async function findAssets(cwd, extensions = DEFAULT_ASSET_EXTENSIONS) {
|
|
|
39
39
|
};
|
|
40
40
|
}));
|
|
41
41
|
}
|
|
42
|
-
export async function findSourceFiles(cwd, extensions = DEFAULT_SOURCE_EXTENSIONS) {
|
|
42
|
+
export async function findSourceFiles(cwd, extensions = DEFAULT_SOURCE_EXTENSIONS, ignore = DEFAULT_IGNORE) {
|
|
43
43
|
const patterns = extensions.map(ext => `**/*.${ext}`);
|
|
44
44
|
return globby(patterns, {
|
|
45
45
|
cwd,
|
|
46
|
-
ignore
|
|
46
|
+
ignore,
|
|
47
47
|
absolute: true
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
|
+
//# sourceMappingURL=scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;IACjD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;IACjD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;CACrC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM;CACzF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,oBAAoB;IACpB,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,sBAAsB;IACtB,kBAAkB;CACnB,CAAC;AAUF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,UAAU,GAAG,wBAAwB,EACrC,MAAM,GAAG,cAAc;IAEvB,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE;QACnC,GAAG;QACH,MAAM;QACN,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzB,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,UAAU,GAAG,yBAAyB,EACtC,MAAM,GAAG,cAAc;IAEvB,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC,QAAQ,EAAE;QACtB,GAAG;QACH,MAAM;QACN,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;AACL,CAAC"}
|
package/dist/ui.js
CHANGED
package/dist/ui.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "assets-tracker",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "A modern, high-performance CLI tool to identify and remove unused assets in your codebase. Automatically scan for unreferenced images, fonts, and media files to optimize your project size.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -26,7 +26,13 @@
|
|
|
26
26
|
"images",
|
|
27
27
|
"media-cleanup",
|
|
28
28
|
"web-performance",
|
|
29
|
-
"developer-tools"
|
|
29
|
+
"developer-tools",
|
|
30
|
+
"react",
|
|
31
|
+
"react-native",
|
|
32
|
+
"expo",
|
|
33
|
+
"ios",
|
|
34
|
+
"android",
|
|
35
|
+
"mobile-development"
|
|
30
36
|
],
|
|
31
37
|
"author": "Dheeraj & Vaibhav",
|
|
32
38
|
"contributors": [
|