@oroinc/oro-webpack-config-builder 5.1.0-lts013 → 5.1.0-lts014
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/oro-webpack-config.js
CHANGED
|
@@ -9,8 +9,6 @@ const EntryPointFileWriter = require('./writer/scss-entry-point-file-writer');
|
|
|
9
9
|
const LayoutModulesConfigLoader = require('./modules-config/layout-modules-config-loader');
|
|
10
10
|
const LayoutStyleLoader = require('./style/layout-style-loader');
|
|
11
11
|
const MapModulesPlugin = require('./plugin/map/map-modules-plugin');
|
|
12
|
-
const IntegrityFilePlugin = require('./plugin/integrity/integrity-file-plugin');
|
|
13
|
-
const {SubresourceIntegrityPlugin} = require('webpack-subresource-integrity');
|
|
14
12
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
15
13
|
const ModulesConfigLoader = require('./modules-config/modules-config-loader');
|
|
16
14
|
const DynamicImportsFileWriter = require('./writer/dynamic-imports-file-writer');
|
|
@@ -282,8 +280,7 @@ class ConfigBuilder {
|
|
|
282
280
|
output: {
|
|
283
281
|
filename: '[name].js',
|
|
284
282
|
// Because we use third party libraries 'chunkFilename' should include only [name]
|
|
285
|
-
chunkFilename: this._getVersionedPath('chunk/[name].js', this.assetVersion)
|
|
286
|
-
crossOriginLoading: "anonymous"
|
|
283
|
+
chunkFilename: this._getVersionedPath('chunk/[name].js', this.assetVersion)
|
|
287
284
|
},
|
|
288
285
|
devtool: !env.skipSourcemap && 'inline-cheap-module-source-map',
|
|
289
286
|
mode: 'development',
|
|
@@ -386,10 +383,6 @@ class ConfigBuilder {
|
|
|
386
383
|
new webpack.optimize.MinChunkSizePlugin({
|
|
387
384
|
minChunkSize: 30000 // Minimum number of characters
|
|
388
385
|
}),
|
|
389
|
-
new SubresourceIntegrityPlugin(),
|
|
390
|
-
new IntegrityFilePlugin({
|
|
391
|
-
publicPath: this.resolvedPublicPath
|
|
392
|
-
}),
|
|
393
386
|
new AfterWebpackLogsPlugin(
|
|
394
387
|
stats => this.emitter.emit('build:complete', stats)
|
|
395
388
|
),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oroinc/oro-webpack-config-builder",
|
|
3
|
-
"version": "5.1.0-
|
|
3
|
+
"version": "5.1.0-lts014",
|
|
4
4
|
"author": "Oro, Inc (https://www.oroinc.com)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "An integration of OroPlatform based applications with the Webpack.",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"printf": "~0.6.0",
|
|
33
33
|
"resolve-url-loader": "^5.0.0",
|
|
34
34
|
"rtlcss-webpack-plugin": "~4.0.6",
|
|
35
|
-
"sass": "
|
|
36
|
-
"sass-loader": "
|
|
35
|
+
"sass": "1.98.0",
|
|
36
|
+
"sass-loader": "16.0.7",
|
|
37
37
|
"schema-utils": "^4.0.0",
|
|
38
38
|
"style-loader": "~3.3.1",
|
|
39
39
|
"terser": "~5.17.1",
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
"webpack-cli": "~5.0.0",
|
|
47
47
|
"webpack-dev-server": "^4.11.1",
|
|
48
48
|
"webpack-merge": "~5.8.0",
|
|
49
|
-
"webpack-subresource-integrity": "^5.2.0-rc.1",
|
|
50
49
|
"wildcard": "~2.0.0"
|
|
51
50
|
}
|
|
52
51
|
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
const { createHash } = require('crypto');
|
|
2
|
-
const { Compilation, sources } = require('webpack');
|
|
3
|
-
const fs = require('fs').promises;
|
|
4
|
-
const path = require('path');
|
|
5
|
-
|
|
6
|
-
class IntegrityFilePlugin {
|
|
7
|
-
constructor({fileName = 'integrity.json', publicPath = '', algorithm = 'sha384'} = {}) {
|
|
8
|
-
this.fileName = fileName;
|
|
9
|
-
this.publicPath = publicPath;
|
|
10
|
-
this.algorithm = algorithm;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
apply(compiler) {
|
|
14
|
-
compiler.hooks.thisCompilation.tap('IntegrityFilePlugin', (compilation) => {
|
|
15
|
-
compilation.hooks.processAssets.tapPromise(
|
|
16
|
-
{ name: 'SubresourceIntegrityPlugin', stage: Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER },
|
|
17
|
-
async () => {
|
|
18
|
-
const integrityData = Object.fromEntries(
|
|
19
|
-
Object.entries(compilation.assets)
|
|
20
|
-
.filter(([assetName]) => assetName.endsWith('.css') || assetName.endsWith('.js'))
|
|
21
|
-
.map(([assetName, asset]) => {
|
|
22
|
-
const hash = createHash(this.algorithm).update(asset.source()).digest('base64');
|
|
23
|
-
const assetNormalized = assetName.split('?')[0];
|
|
24
|
-
|
|
25
|
-
return [
|
|
26
|
-
path.join(compiler.options.output.publicPath || '', assetNormalized),
|
|
27
|
-
`${this.algorithm}-${hash}`
|
|
28
|
-
];
|
|
29
|
-
})
|
|
30
|
-
);
|
|
31
|
-
const jsonData = JSON.stringify(integrityData, null, 2);
|
|
32
|
-
const outputPath = path.join(this.publicPath, compiler.options.output.publicPath, this.fileName);
|
|
33
|
-
|
|
34
|
-
await fs.writeFile(outputPath, jsonData, 'utf8');
|
|
35
|
-
compilation.emitAsset(outputPath, new sources.RawSource(jsonData));
|
|
36
|
-
}
|
|
37
|
-
);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
module.exports = IntegrityFilePlugin;
|