rollup-plugin-webpack-stats 0.2.6 → 0.4.0

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 CHANGED
@@ -49,9 +49,46 @@ export default defineConfig((env) => ({
49
49
  }));
50
50
  ```
51
51
 
52
+ ```js
53
+ // vite.config.js - using plugin-legacy, and generating a stats file
54
+ // for the the modern and legacy outputs
55
+ import { defineConfig } from 'vite';
56
+ import legacy from '@vitejs/plugin-legacy';
57
+ import { webpackStats } from 'rollup-plugin-webpack-stats';
58
+
59
+ export default defineConfig((env) => ({
60
+ build: {
61
+ rollupOptions: {
62
+ output: {
63
+ plugins: [
64
+ // Output webpack-stats-modern.json file for the modern build
65
+ // Output webpack-stats-legacy.json file for the legacy build
66
+ // Stats are an output plugin, as plugin-legacy works by injecting
67
+ // an additional output, that duplicates the plugins configured here
68
+ webpackStats((options) => {
69
+ const isLegacy = options.format === 'system';
70
+ return {
71
+ fileName: `webpack-stats${isLegacy ? '-legacy' : '-modern'}.json`,
72
+ };
73
+ }),
74
+ ],
75
+ },
76
+ },
77
+ },
78
+ plugins: [
79
+ legacy({
80
+ /* Your legacy config here */
81
+ }),
82
+ ],
83
+ }));
84
+ ```
85
+
52
86
  ### Options
53
87
 
54
88
  - `fileName` - JSON stats file inside rollup/vite output directory
89
+ - `excludeAssets` - exclude matching assets: `string | RegExp | ((filepath: string) => boolean) | Array<string | RegExp | ((filepath: string) => boolean)>`
90
+ - `excludeModules` - exclude matching modules: `string | RegExp | ((filepath: string) => boolean) | Array<string | RegExp | ((filepath: string) => boolean)>`
91
+
55
92
 
56
93
  ## Resources
57
94
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { Plugin } from 'rollup';
1
+ import { Plugin, OutputOptions } from 'rollup';
2
+ import type { ExcludeFilepathOption } from './types';
2
3
  import { BundleTransformOptions } from './transform';
3
4
  export { bundleToWebpackStats } from './transform';
4
5
  interface WebpackStatsOptions extends BundleTransformOptions {
@@ -7,5 +8,14 @@ interface WebpackStatsOptions extends BundleTransformOptions {
7
8
  * default: webpack-stats.json
8
9
  */
9
10
  fileName?: string;
11
+ /**
12
+ * Exclude matching assets
13
+ */
14
+ excludeAssets?: ExcludeFilepathOption;
15
+ /**
16
+ * Exclude matching modules
17
+ */
18
+ excludeModules?: ExcludeFilepathOption;
10
19
  }
11
- export declare const webpackStats: (options?: WebpackStatsOptions) => Plugin;
20
+ type WebpackStatsOptionsOrBuilder = WebpackStatsOptions | ((outputOptions: OutputOptions) => WebpackStatsOptions);
21
+ export declare const webpackStats: (options?: WebpackStatsOptionsOrBuilder) => Plugin;
package/dist/index.js CHANGED
@@ -1,20 +1,26 @@
1
1
  'use strict';
2
2
 
3
- var crypto = require('crypto');
4
3
  var path = require('path');
4
+ var crypto = require('crypto');
5
5
 
6
6
  const HASH_LENGTH = 7;
7
- const getByteSize = (content) => {
7
+ /**
8
+ * Get content byte size
9
+ */
10
+ function getByteSize(content) {
8
11
  if (typeof content === 'string') {
9
12
  return Buffer.from(content).length;
10
13
  }
11
14
  return content?.length || 0;
12
- };
13
- const getHash = (text) => {
15
+ }
16
+ /**
17
+ * Generate a 7 chars hash from a filepath
18
+ */
19
+ function getHash(filepath) {
14
20
  const digest = crypto.createHash('sha256');
15
- return digest.update(Buffer.from(text)).digest('hex').substr(0, HASH_LENGTH);
16
- };
17
- const getChunkId = (chunk) => {
21
+ return digest.update(Buffer.from(filepath)).digest('hex').substr(0, HASH_LENGTH);
22
+ }
23
+ function getChunkId(chunk) {
18
24
  let value = chunk.name;
19
25
  // Use entry module relative path
20
26
  if (chunk.moduleIds?.length > 0) {
@@ -22,11 +28,37 @@ const getChunkId = (chunk) => {
22
28
  value = path.relative(process.cwd(), absoluteModulePath);
23
29
  }
24
30
  return getHash([chunk, value].join('-'));
25
- };
26
- const bundleToWebpackStats = (bundle, customOptions) => {
31
+ }
32
+ /**
33
+ * Check if filepath should be excluded based on a config
34
+ */
35
+ function checkExcludeFilepath(filepath, option) {
36
+ if (!option) {
37
+ return false;
38
+ }
39
+ if (Array.isArray(option)) {
40
+ let res = false;
41
+ for (let i = 0; i <= option.length - 1 && res === false; i++) {
42
+ res = checkExcludeFilepath(filepath, option[i]);
43
+ }
44
+ return res;
45
+ }
46
+ if (typeof option === 'function') {
47
+ return option(filepath);
48
+ }
49
+ if (typeof option === 'string') {
50
+ return Boolean(filepath.match(option));
51
+ }
52
+ if ('test' in option) {
53
+ return option.test(filepath);
54
+ }
55
+ return false;
56
+ }
57
+
58
+ const bundleToWebpackStats = (bundle, pluginOptions) => {
27
59
  const options = {
28
60
  moduleOriginalSize: false,
29
- ...customOptions,
61
+ ...pluginOptions,
30
62
  };
31
63
  const items = Object.values(bundle);
32
64
  const assets = [];
@@ -34,6 +66,9 @@ const bundleToWebpackStats = (bundle, customOptions) => {
34
66
  const moduleByFileName = {};
35
67
  items.forEach(item => {
36
68
  if (item.type === 'chunk') {
69
+ if (checkExcludeFilepath(item.fileName, options.excludeAssets)) {
70
+ return;
71
+ }
37
72
  assets.push({
38
73
  name: item.fileName,
39
74
  size: getByteSize(item.code),
@@ -47,6 +82,9 @@ const bundleToWebpackStats = (bundle, customOptions) => {
47
82
  names: [item.name],
48
83
  });
49
84
  Object.entries(item.modules).forEach(([modulePath, moduleInfo]) => {
85
+ if (checkExcludeFilepath(modulePath, options.excludeModules)) {
86
+ return;
87
+ }
50
88
  // Remove unexpected rollup null prefix
51
89
  const normalizedModulePath = modulePath.replace('\u0000', '');
52
90
  const relativeModulePath = path.relative(process.cwd(), normalizedModulePath);
@@ -70,6 +108,9 @@ const bundleToWebpackStats = (bundle, customOptions) => {
70
108
  });
71
109
  }
72
110
  else if (item.type === 'asset') {
111
+ if (checkExcludeFilepath(item.fileName, options.excludeAssets)) {
112
+ return;
113
+ }
73
114
  assets.push({
74
115
  name: item.fileName,
75
116
  size: getByteSize(item.source.toString()),
@@ -88,11 +129,12 @@ const bundleToWebpackStats = (bundle, customOptions) => {
88
129
  const NAME = 'webpackStats';
89
130
  const webpackStats = (options = {}) => ({
90
131
  name: NAME,
91
- generateBundle(_, bundle) {
92
- const output = bundleToWebpackStats(bundle, options);
132
+ generateBundle(outputOptions, bundle) {
133
+ const resolvedOptions = typeof options === 'function' ? options(outputOptions) : options;
134
+ const output = bundleToWebpackStats(bundle, resolvedOptions);
93
135
  this.emitFile({
94
136
  type: 'asset',
95
- fileName: options?.fileName || 'webpack-stats.json',
137
+ fileName: resolvedOptions.fileName || 'webpack-stats.json',
96
138
  source: JSON.stringify(output),
97
139
  });
98
140
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/transform.ts","../src/index.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils.ts","../src/transform.ts","../src/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { OutputBundle } from 'rollup';
1
+ import type { OutputBundle } from 'rollup';
2
+ import type { ExcludeFilepathOption } from "./types";
2
3
  export type WebpackStatsFilteredAsset = {
3
4
  name: string;
4
5
  size?: number;
@@ -35,5 +36,13 @@ export type BundleTransformOptions = {
35
36
  * default: false
36
37
  */
37
38
  moduleOriginalSize?: boolean;
39
+ /**
40
+ * Exclude asset
41
+ */
42
+ excludeAssets?: ExcludeFilepathOption;
43
+ /**
44
+ * Exclude module
45
+ */
46
+ excludeModules?: ExcludeFilepathOption;
38
47
  };
39
- export declare const bundleToWebpackStats: (bundle: OutputBundle, customOptions?: BundleTransformOptions) => WebpackStatsFiltered;
48
+ export declare const bundleToWebpackStats: (bundle: OutputBundle, pluginOptions?: BundleTransformOptions) => WebpackStatsFiltered;
@@ -0,0 +1,16 @@
1
+ /// <reference types="node" />
2
+ import type { OutputChunk } from 'rollup';
3
+ import type { ExcludeFilepathOption } from './types';
4
+ /**
5
+ * Get content byte size
6
+ */
7
+ export declare function getByteSize(content: string | Buffer): number;
8
+ /**
9
+ * Generate a 7 chars hash from a filepath
10
+ */
11
+ export declare function getHash(filepath: string): string;
12
+ export declare function getChunkId(chunk: OutputChunk): string;
13
+ /**
14
+ * Check if filepath should be excluded based on a config
15
+ */
16
+ export declare function checkExcludeFilepath(filepath: string, option?: ExcludeFilepathOption): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rollup-plugin-webpack-stats",
3
- "version": "0.2.6",
3
+ "version": "0.4.0",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -47,11 +47,11 @@
47
47
  "@release-it/conventional-changelog": "8.0.1",
48
48
  "@rollup/plugin-typescript": "11.1.6",
49
49
  "@tsconfig/node14": "14.1.2",
50
- "@types/node": "20.12.7",
50
+ "@types/node": "20.14.0",
51
51
  "dotenv": "16.4.5",
52
52
  "husky": "9.0.11",
53
- "release-it": "17.2.1",
54
- "rollup": "4.17.0",
53
+ "release-it": "17.3.0",
54
+ "rollup": "4.18.0",
55
55
  "tslib": "2.6.2",
56
56
  "typescript": "5.4.5",
57
57
  "vitest": "0.34.6"