@teambit/webpack 0.0.645 → 0.0.649
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/{__preview-1644377006839.js → __preview-1644981953366.js} +1 -1
- package/dist/webpack.bundler.d.ts +1 -0
- package/dist/webpack.bundler.js +24 -5
- package/dist/webpack.bundler.js.map +1 -1
- package/package-tar/teambit-webpack-0.0.649.tgz +0 -0
- package/package.json +8 -8
- package/package-tar/teambit-webpack-0.0.645.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.
|
|
1
|
+
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.649/dist/webpack.composition.js')]
|
|
@@ -22,6 +22,7 @@ export declare class WebpackBundler implements Bundler {
|
|
|
22
22
|
*/
|
|
23
23
|
configs: Configuration[], logger: Logger, webpack: any);
|
|
24
24
|
run(): Promise<BundlerResult[]>;
|
|
25
|
+
private getErrors;
|
|
25
26
|
private getAssets;
|
|
26
27
|
private getEntriesAssetsMap;
|
|
27
28
|
private getCompressedSize;
|
package/dist/webpack.bundler.js
CHANGED
|
@@ -70,7 +70,6 @@ class WebpackBundler {
|
|
|
70
70
|
// TODO: split to multiple processes to reduce time and configure concurrent builds.
|
|
71
71
|
// @see https://github.com/trivago/parallel-webpack
|
|
72
72
|
return compiler.run((err, stats) => {
|
|
73
|
-
// console.log('err webpack', err);
|
|
74
73
|
if (err) {
|
|
75
74
|
this.logger.error('get error from webpack compiler, full error:', err);
|
|
76
75
|
return resolve({
|
|
@@ -88,7 +87,7 @@ class WebpackBundler {
|
|
|
88
87
|
assets: Object.values(assetsMap),
|
|
89
88
|
assetsByChunkName: info.assetsByChunkName,
|
|
90
89
|
entriesAssetsMap,
|
|
91
|
-
errors: info
|
|
90
|
+
errors: this.getErrors(info),
|
|
92
91
|
outputPath: stats.compilation.outputOptions.path,
|
|
93
92
|
components,
|
|
94
93
|
warnings: info.warnings,
|
|
@@ -102,6 +101,22 @@ class WebpackBundler {
|
|
|
102
101
|
return componentOutput;
|
|
103
102
|
}
|
|
104
103
|
|
|
104
|
+
getErrors(stats) {
|
|
105
|
+
if (!stats.errors) return [];
|
|
106
|
+
const fieldsToShow = ['message', 'moduleId', 'moduleName', 'moduleIdentifier', 'loc'];
|
|
107
|
+
return stats.errors.map(webpackError => {
|
|
108
|
+
const lines = fieldsToShow.map(fieldName => {
|
|
109
|
+
if (webpackError[fieldName]) {
|
|
110
|
+
return `${fieldName}: ${webpackError[fieldName]}`;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return undefined;
|
|
114
|
+
});
|
|
115
|
+
const errorMessage = (0, _lodash().compact)(lines).join('\n');
|
|
116
|
+
return new (_bitError().BitError)(errorMessage);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
105
120
|
getAssets(stats) {
|
|
106
121
|
if (!stats.assets) return {};
|
|
107
122
|
return stats.assets.reduce((acc, asset) => {
|
|
@@ -116,14 +131,16 @@ class WebpackBundler {
|
|
|
116
131
|
|
|
117
132
|
getEntriesAssetsMap(stats, assetsMap) {
|
|
118
133
|
const entriesMap = stats.entrypoints;
|
|
119
|
-
if (!entriesMap) return {};
|
|
134
|
+
if (!entriesMap || !Object.keys(assetsMap).length) return {};
|
|
120
135
|
Object.entries(entriesMap).forEach(([, entryVal]) => {
|
|
121
136
|
var _entryVal$assets, _entryVal$auxiliaryAs;
|
|
122
137
|
|
|
123
138
|
let compressedAssetsSize = 0;
|
|
124
139
|
let compressedAuxiliaryAssetsSize = 0;
|
|
125
140
|
(_entryVal$assets = entryVal.assets) === null || _entryVal$assets === void 0 ? void 0 : _entryVal$assets.forEach(asset => {
|
|
126
|
-
|
|
141
|
+
var _assetsMap$asset$name;
|
|
142
|
+
|
|
143
|
+
const compressedSize = (_assetsMap$asset$name = assetsMap[asset.name]) === null || _assetsMap$asset$name === void 0 ? void 0 : _assetsMap$asset$name.compressedSize;
|
|
127
144
|
|
|
128
145
|
if (compressedSize) {
|
|
129
146
|
// @ts-ignore
|
|
@@ -132,7 +149,9 @@ class WebpackBundler {
|
|
|
132
149
|
}
|
|
133
150
|
});
|
|
134
151
|
(_entryVal$auxiliaryAs = entryVal.auxiliaryAssets) === null || _entryVal$auxiliaryAs === void 0 ? void 0 : _entryVal$auxiliaryAs.forEach(asset => {
|
|
135
|
-
|
|
152
|
+
var _assetsMap$asset$name2;
|
|
153
|
+
|
|
154
|
+
const compressedSize = (_assetsMap$asset$name2 = assetsMap[asset.name]) === null || _assetsMap$asset$name2 === void 0 ? void 0 : _assetsMap$asset$name2.compressedSize;
|
|
136
155
|
|
|
137
156
|
if (compressedSize) {
|
|
138
157
|
// @ts-ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack.bundler.ts"],"names":["WebpackBundler","constructor","targets","configs","logger","webpack","run","startTime","Date","now","compilers","map","config","longProcessLogger","createLongProcessLogger","length","componentOutput","compiler","components","getComponents","outputPath","logProgress","component","id","toString","join","Promise","resolve","err","stats","error","errors","stack","BitError","info","toJson","assetsMap","getAssets","entriesAssetsMap","getEntriesAssetsMap","assets","Object","values","assetsByChunkName","compilation","outputOptions","path","warnings","endTime","end","reduce","acc","asset","name","size","compressedSize","getCompressedSize","entriesMap","entrypoints","entries","forEach","entryVal","compressedAssetsSize","compressedAuxiliaryAssetsSize","auxiliaryAssets","related","undefined","gzipped","find","relatedAsset","type","splitPath","split","pop","target","targetCandidate","Error"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIO,MAAMA,cAAN,CAAwC;AAC7CC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,OAJC;AAMT;AACJ;AACA;AACYC,EAAAA,OATC,EAWDC,MAXC,EAaDC,OAbC,EAcT;AAAA,SAVQH,OAUR,GAVQA,OAUR;AAAA,SALQC,OAKR,GALQA,OAKR;AAAA,SAHQC,MAGR,GAHQA,MAGR;AAAA,SADQC,OACR,GADQA,OACR;AAAE;;AAEK,QAAHC,GAAG,GAA6B;AACpC,UAAMC,SAAS,GAAGC,IAAI,CAACC,GAAL,EAAlB;AACA,UAAMC,SAAS,GAAG,KAAKP,OAAL,CAAaQ,GAAb,CAAkBC,MAAD,IAAiB,KAAKP,OAAL,CAAaO,MAAb,CAAlC,CAAlB;AACA,UAAMC,iBAAiB,GAAG,KAAKT,MAAL,CAAYU,uBAAZ,CAAoC,yBAApC,EAA+DJ,SAAS,CAACK,MAAzE,CAA1B;AACA,UAAMC,eAAe,GAAG,MAAM,2BAAUN,SAAV,EAAsBO,QAAD,IAAwB;AACzE,YAAMC,UAAU,GAAG,KAAKC,aAAL,CAAmBF,QAAQ,CAACG,UAA5B,CAAnB;AACAP,MAAAA,iBAAiB,CAACQ,WAAlB,CAA8BH,UAAU,CAACP,GAAX,CAAgBW,SAAD,IAAeA,SAAS,CAACC,EAAV,CAAaC,QAAb,EAA9B,EAAuDC,IAAvD,CAA4D,IAA5D,CAA9B;AACA,aAAO,IAAIC,OAAJ,CAAaC,OAAD,IAAa;AAC9B;AACA;AACA,eAAOV,QAAQ,CAACX,GAAT,CAAa,CAACsB,GAAD,EAAMC,KAAN,KAAgB;AAClC;AAEA,cAAID,GAAJ,EAAS;AACP,iBAAKxB,MAAL,CAAY0B,KAAZ,CAAkB,8CAAlB,EAAkEF,GAAlE;AAEA,mBAAOD,OAAO,CAAC;AACbI,cAAAA,MAAM,EAAE,CAAE,GAAEH,GAAG,CAACJ,QAAJ,EAAe,KAAII,GAAG,CAACI,KAAM,EAAjC,CADK;AAEbd,cAAAA;AAFa,aAAD,CAAd;AAID;;AACD,cAAI,CAACW,KAAL,EAAY,MAAM,KAAII,oBAAJ,EAAa,qBAAb,CAAN;AACZ,gBAAMC,IAAI,GAAGL,KAAK,CAACM,MAAN,EAAb,CAZkC,CAclC;;AAEA,gBAAMC,SAAS,GAAG,KAAKC,SAAL,CAAeH,IAAf,CAAlB;AACA,gBAAMI,gBAAgB,GAAG,KAAKC,mBAAL,CAAyBL,IAAzB,EAA+BE,SAA/B,CAAzB;AAEA,iBAAOT,OAAO,CAAC;AACba,YAAAA,MAAM,EAAEC,MAAM,CAACC,MAAP,CAAcN,SAAd,CADK;AAEbO,YAAAA,iBAAiB,EAAET,IAAI,CAACS,iBAFX;AAGbL,YAAAA,gBAHa;AAIbP,YAAAA,MAAM,EAAEG,IAAI,CAACH,MAJA;AAKbX,YAAAA,UAAU,EAAES,KAAK,CAACe,WAAN,CAAkBC,aAAlB,CAAgCC,IAL/B;AAMb5B,YAAAA,UANa;AAOb6B,YAAAA,QAAQ,EAAEb,IAAI,CAACa,QAPF;AAQbxC,YAAAA,SARa;AASbyC,YAAAA,OAAO,EAAExC,IAAI,CAACC,GAAL;AATI,WAAD,CAAd;AAWD,SA9BM,CAAP;AA+BD,OAlCM,CAAP;AAmCD,KAtC6B,CAA9B;AAuCAI,IAAAA,iBAAiB,CAACoC,GAAlB;AACA,WAAOjC,eAAP;AACD;;AAEOqB,EAAAA,SAAS,CAACR,KAAD,EAAqC;AACpD,QAAI,CAACA,KAAK,CAACW,MAAX,EAAmB,OAAO,EAAP;AACnB,WAAOX,KAAK,CAACW,MAAN,CAAaU,MAAb,CAAoB,CAACC,GAAD,EAAMC,KAAN,KAAgB;AACzCD,MAAAA,GAAG,CAACC,KAAK,CAACC,IAAP,CAAH,GAAkB;AAChBA,QAAAA,IAAI,EAAED,KAAK,CAACC,IADI;AAEhBC,QAAAA,IAAI,EAAEF,KAAK,CAACE,IAFI;AAGhBC,QAAAA,cAAc,EAAE,KAAKC,iBAAL,CAAuBJ,KAAvB;AAHA,OAAlB;AAKA,aAAOD,GAAP;AACD,KAPM,EAOJ,EAPI,CAAP;AAQD;;AAEOZ,EAAAA,mBAAmB,CAACV,KAAD,EAA0BO,SAA1B,EAAkE;AAC3F,UAAMqB,UAAU,GAAG5B,KAAK,CAAC6B,WAAzB;AACA,QAAI,CAACD,UAAL,EAAiB,OAAO,EAAP;AACjBhB,IAAAA,MAAM,CAACkB,OAAP,CAAeF,UAAf,EAA2BG,OAA3B,CAAmC,CAAC,GAAGC,QAAH,CAAD,KAAkB;AAAA;;AACnD,UAAIC,oBAAoB,GAAG,CAA3B;AACA,UAAIC,6BAA6B,GAAG,CAApC;AACA,0BAAAF,QAAQ,CAACrB,MAAT,sEAAiBoB,OAAjB,CAA0BR,KAAD,IAAW;AAClC,cAAMG,cAAc,GAAGnB,SAAS,CAACgB,KAAK,CAACC,IAAP,CAAT,CAAsBE,cAA7C;;AACA,YAAIA,cAAJ,EAAoB;AAClB;AACAH,UAAAA,KAAK,CAACG,cAAN,GAAuBA,cAAvB;AACAO,UAAAA,oBAAoB,IAAIP,cAAxB;AACD;AACF,OAPD;AAQA,+BAAAM,QAAQ,CAACG,eAAT,gFAA0BJ,OAA1B,CAAmCR,KAAD,IAAW;AAC3C,cAAMG,cAAc,GAAGnB,SAAS,CAACgB,KAAK,CAACC,IAAP,CAAT,CAAsBE,cAA7C;;AACA,YAAIA,cAAJ,EAAoB;AAClB;AACAH,UAAAA,KAAK,CAACG,cAAN,GAAuBA,cAAvB;AACAQ,UAAAA,6BAA6B,IAAIR,cAAjC;AACD;AACF,OAPD;AAQAM,MAAAA,QAAQ,CAACC,oBAAT,GAAgCA,oBAAhC;AACAD,MAAAA,QAAQ,CAACE,6BAAT,GAAyCA,6BAAzC;AACD,KArBD;AAsBA,WAAON,UAAP;AACD;;AAEOD,EAAAA,iBAAiB,CAACJ,KAAD,EAA4B;AACnD,QAAI,CAACA,KAAK,CAACa,OAAP,IAAkB,uBAAQb,KAAK,CAACa,OAAd,CAAtB,EAA8C,OAAOC,SAAP;AAC9C,UAAMC,OAAO,GAAGf,KAAK,CAACa,OAAN,CAAcG,IAAd,CAAoBC,YAAD,IAAkB;AACnD,aAAOA,YAAY,CAACC,IAAb,KAAsB,SAA7B;AACD,KAFe,CAAhB;AAGA,QAAI,CAACH,OAAL,EAAc,OAAOD,SAAP;AACd,WAAOC,OAAO,CAACb,IAAf;AACD;;AAEOnC,EAAAA,aAAa,CAACC,UAAD,EAAqB;AACxC,UAAMmD,SAAS,GAAGnD,UAAU,CAACoD,KAAX,CAAiB,GAAjB,CAAlB;AACAD,IAAAA,SAAS,CAACE,GAAV;AACA,UAAM3B,IAAI,GAAGyB,SAAS,CAAC9C,IAAV,CAAe,GAAf,CAAb;AACA,UAAMiD,MAAM,GAAG,KAAKxE,OAAL,CAAakE,IAAb,CAAmBO,eAAD,IAAqB;AACpD,aAAO7B,IAAI,KAAK6B,eAAe,CAACvD,UAAhC;AACD,KAFc,CAAf;;AAIA,QAAI,CAACsD,MAAL,EAAa;AACX,YAAM,IAAIE,KAAJ,CAAW,yCAAwC9B,IAAK,GAAxD,CAAN;AACD;;AAED,WAAO4B,MAAM,CAACxD,UAAd;AACD;;AA9H4C","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport type { Bundler, BundlerResult, Asset, Target, EntriesAssetsMap } from '@teambit/bundler';\nimport type { Logger } from '@teambit/logger';\nimport { isEmpty } from 'lodash';\nimport mapSeries from 'p-map-series';\nimport type { Compiler, Configuration, StatsCompilation } from 'webpack';\n\ntype AssetsMap = { [assetId: string]: Asset };\nexport class WebpackBundler implements Bundler {\n constructor(\n /**\n * targets to bundle.\n */\n private targets: Target[],\n\n /**\n * webpack configuration.\n */\n private configs: Configuration[],\n\n private logger: Logger,\n\n private webpack\n ) {}\n\n async run(): Promise<BundlerResult[]> {\n const startTime = Date.now();\n const compilers = this.configs.map((config: any) => this.webpack(config));\n const longProcessLogger = this.logger.createLongProcessLogger('running Webpack bundler', compilers.length);\n const componentOutput = await mapSeries(compilers, (compiler: Compiler) => {\n const components = this.getComponents(compiler.outputPath);\n longProcessLogger.logProgress(components.map((component) => component.id.toString()).join(', '));\n return new Promise((resolve) => {\n // TODO: split to multiple processes to reduce time and configure concurrent builds.\n // @see https://github.com/trivago/parallel-webpack\n return compiler.run((err, stats) => {\n // console.log('err webpack', err);\n\n if (err) {\n this.logger.error('get error from webpack compiler, full error:', err);\n\n return resolve({\n errors: [`${err.toString()}\\n${err.stack}`],\n components,\n });\n }\n if (!stats) throw new BitError('unknown build error');\n const info = stats.toJson();\n\n // console.log(JSON.stringify(info, null, 2));\n\n const assetsMap = this.getAssets(info);\n const entriesAssetsMap = this.getEntriesAssetsMap(info, assetsMap);\n\n return resolve({\n assets: Object.values(assetsMap),\n assetsByChunkName: info.assetsByChunkName,\n entriesAssetsMap,\n errors: info.errors,\n outputPath: stats.compilation.outputOptions.path,\n components,\n warnings: info.warnings,\n startTime,\n endTime: Date.now(),\n });\n });\n });\n });\n longProcessLogger.end();\n return componentOutput as BundlerResult[];\n }\n\n private getAssets(stats: StatsCompilation): AssetsMap {\n if (!stats.assets) return {};\n return stats.assets.reduce((acc, asset) => {\n acc[asset.name] = {\n name: asset.name,\n size: asset.size,\n compressedSize: this.getCompressedSize(asset),\n };\n return acc;\n }, {});\n }\n\n private getEntriesAssetsMap(stats: StatsCompilation, assetsMap: AssetsMap): EntriesAssetsMap {\n const entriesMap = stats.entrypoints;\n if (!entriesMap) return {};\n Object.entries(entriesMap).forEach(([, entryVal]) => {\n let compressedAssetsSize = 0;\n let compressedAuxiliaryAssetsSize = 0;\n entryVal.assets?.forEach((asset) => {\n const compressedSize = assetsMap[asset.name].compressedSize;\n if (compressedSize) {\n // @ts-ignore\n asset.compressedSize = compressedSize;\n compressedAssetsSize += compressedSize;\n }\n });\n entryVal.auxiliaryAssets?.forEach((asset) => {\n const compressedSize = assetsMap[asset.name].compressedSize;\n if (compressedSize) {\n // @ts-ignore\n asset.compressedSize = compressedSize;\n compressedAuxiliaryAssetsSize += compressedSize;\n }\n });\n entryVal.compressedAssetsSize = compressedAssetsSize;\n entryVal.compressedAuxiliaryAssetsSize = compressedAuxiliaryAssetsSize;\n });\n return entriesMap as any as EntriesAssetsMap;\n }\n\n private getCompressedSize(asset): number | undefined {\n if (!asset.related || isEmpty(asset.related)) return undefined;\n const gzipped = asset.related.find((relatedAsset) => {\n return relatedAsset.type === 'gzipped';\n });\n if (!gzipped) return undefined;\n return gzipped.size;\n }\n\n private getComponents(outputPath: string) {\n const splitPath = outputPath.split('/');\n splitPath.pop();\n const path = splitPath.join('/');\n const target = this.targets.find((targetCandidate) => {\n return path === targetCandidate.outputPath;\n });\n\n if (!target) {\n throw new Error(`Could not find component id for path \"${path}\"`);\n }\n\n return target.components;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["webpack.bundler.ts"],"names":["WebpackBundler","constructor","targets","configs","logger","webpack","run","startTime","Date","now","compilers","map","config","longProcessLogger","createLongProcessLogger","length","componentOutput","compiler","components","getComponents","outputPath","logProgress","component","id","toString","join","Promise","resolve","err","stats","error","errors","stack","BitError","info","toJson","assetsMap","getAssets","entriesAssetsMap","getEntriesAssetsMap","assets","Object","values","assetsByChunkName","getErrors","compilation","outputOptions","path","warnings","endTime","end","fieldsToShow","webpackError","lines","fieldName","undefined","errorMessage","reduce","acc","asset","name","size","compressedSize","getCompressedSize","entriesMap","entrypoints","keys","entries","forEach","entryVal","compressedAssetsSize","compressedAuxiliaryAssetsSize","auxiliaryAssets","related","gzipped","find","relatedAsset","type","splitPath","split","pop","target","targetCandidate","Error"],"mappings":"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","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport type { Bundler, BundlerResult, Asset, Target, EntriesAssetsMap } from '@teambit/bundler';\nimport type { Logger } from '@teambit/logger';\nimport { compact, isEmpty } from 'lodash';\nimport mapSeries from 'p-map-series';\nimport type { Compiler, Configuration, StatsCompilation, StatsAsset } from 'webpack';\n\ntype AssetsMap = { [assetId: string]: Asset };\nexport class WebpackBundler implements Bundler {\n constructor(\n /**\n * targets to bundle.\n */\n private targets: Target[],\n\n /**\n * webpack configuration.\n */\n private configs: Configuration[],\n\n private logger: Logger,\n\n private webpack\n ) {}\n\n async run(): Promise<BundlerResult[]> {\n const startTime = Date.now();\n const compilers = this.configs.map((config: any) => this.webpack(config));\n const longProcessLogger = this.logger.createLongProcessLogger('running Webpack bundler', compilers.length);\n const componentOutput = await mapSeries(compilers, (compiler: Compiler) => {\n const components = this.getComponents(compiler.outputPath);\n longProcessLogger.logProgress(components.map((component) => component.id.toString()).join(', '));\n return new Promise((resolve) => {\n // TODO: split to multiple processes to reduce time and configure concurrent builds.\n // @see https://github.com/trivago/parallel-webpack\n return compiler.run((err, stats) => {\n if (err) {\n this.logger.error('get error from webpack compiler, full error:', err);\n\n return resolve({\n errors: [`${err.toString()}\\n${err.stack}`],\n components,\n });\n }\n if (!stats) throw new BitError('unknown build error');\n const info = stats.toJson();\n\n // console.log(JSON.stringify(info, null, 2));\n\n const assetsMap = this.getAssets(info);\n const entriesAssetsMap = this.getEntriesAssetsMap(info, assetsMap);\n\n return resolve({\n assets: Object.values(assetsMap),\n assetsByChunkName: info.assetsByChunkName,\n entriesAssetsMap,\n errors: this.getErrors(info),\n outputPath: stats.compilation.outputOptions.path,\n components,\n warnings: info.warnings,\n startTime,\n endTime: Date.now(),\n });\n });\n });\n });\n longProcessLogger.end();\n return componentOutput as BundlerResult[];\n }\n\n private getErrors(stats: StatsCompilation): Error[] {\n if (!stats.errors) return [];\n const fieldsToShow = ['message', 'moduleId', 'moduleName', 'moduleIdentifier', 'loc'];\n return stats.errors.map((webpackError) => {\n const lines = fieldsToShow.map((fieldName) => {\n if (webpackError[fieldName]) {\n return `${fieldName}: ${webpackError[fieldName]}`;\n }\n return undefined;\n });\n const errorMessage = compact(lines).join('\\n');\n return new BitError(errorMessage);\n });\n }\n\n private getAssets(stats: StatsCompilation): AssetsMap {\n if (!stats.assets) return {};\n return stats.assets.reduce((acc, asset) => {\n acc[asset.name] = {\n name: asset.name,\n size: asset.size,\n compressedSize: this.getCompressedSize(asset),\n };\n return acc;\n }, {});\n }\n\n private getEntriesAssetsMap(stats: StatsCompilation, assetsMap: AssetsMap): EntriesAssetsMap {\n const entriesMap = stats.entrypoints;\n if (!entriesMap || !Object.keys(assetsMap).length) return {};\n Object.entries(entriesMap).forEach(([, entryVal]) => {\n let compressedAssetsSize = 0;\n let compressedAuxiliaryAssetsSize = 0;\n entryVal.assets?.forEach((asset) => {\n const compressedSize = assetsMap[asset.name]?.compressedSize;\n if (compressedSize) {\n // @ts-ignore\n asset.compressedSize = compressedSize;\n compressedAssetsSize += compressedSize;\n }\n });\n entryVal.auxiliaryAssets?.forEach((asset) => {\n const compressedSize = assetsMap[asset.name]?.compressedSize;\n if (compressedSize) {\n // @ts-ignore\n asset.compressedSize = compressedSize;\n compressedAuxiliaryAssetsSize += compressedSize;\n }\n });\n entryVal.compressedAssetsSize = compressedAssetsSize;\n entryVal.compressedAuxiliaryAssetsSize = compressedAuxiliaryAssetsSize;\n });\n return entriesMap as any as EntriesAssetsMap;\n }\n\n private getCompressedSize(asset: StatsAsset): number | undefined {\n if (!asset.related || isEmpty(asset.related)) return undefined;\n const gzipped = asset.related.find((relatedAsset) => {\n return relatedAsset.type === 'gzipped';\n });\n if (!gzipped) return undefined;\n return gzipped.size;\n }\n\n private getComponents(outputPath: string) {\n const splitPath = outputPath.split('/');\n splitPath.pop();\n const path = splitPath.join('/');\n const target = this.targets.find((targetCandidate) => {\n return path === targetCandidate.outputPath;\n });\n\n if (!target) {\n throw new Error(`Could not find component id for path \"${path}\"`);\n }\n\n return target.components;\n }\n}\n"]}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/webpack",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.649",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/webpack/webpack",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.webpack",
|
|
8
8
|
"name": "webpack",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.649"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"webpack": "5.51.1",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"core-js": "^3.0.0",
|
|
45
45
|
"@teambit/webpack.modules.config-mutator": "0.0.136",
|
|
46
46
|
"@teambit/bit-error": "0.0.394",
|
|
47
|
-
"@teambit/bundler": "0.0.
|
|
48
|
-
"@teambit/logger": "0.0.
|
|
49
|
-
"@teambit/cli": "0.0.
|
|
50
|
-
"@teambit/pubsub": "0.0.
|
|
51
|
-
"@teambit/workspace": "0.0.
|
|
47
|
+
"@teambit/bundler": "0.0.649",
|
|
48
|
+
"@teambit/logger": "0.0.533",
|
|
49
|
+
"@teambit/cli": "0.0.443",
|
|
50
|
+
"@teambit/pubsub": "0.0.649",
|
|
51
|
+
"@teambit/workspace": "0.0.649",
|
|
52
52
|
"@teambit/webpack.modules.generate-externals": "0.0.2"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"@types/node": "12.20.4"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
|
-
"@teambit/legacy": "1.0.
|
|
65
|
+
"@teambit/legacy": "1.0.221",
|
|
66
66
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
67
67
|
"react": "^16.8.0 || ^17.0.0"
|
|
68
68
|
},
|
|
Binary file
|