feat: expose plugins and presets on SwaggerUI global symbol (#9189)
Part of this commit is also: - complete plugins consolidation - complete presets consolidation - build system consolidation Refs #9188
This commit is contained in:
89
webpack/es-bundle-core.js
Normal file
89
webpack/es-bundle-core.js
Normal file
@@ -0,0 +1,89 @@
|
||||
/**
|
||||
* @prettier
|
||||
*/
|
||||
|
||||
/** Dev Note:
|
||||
* StatsWriterPlugin is disabled by default; uncomment to enable
|
||||
* when enabled, rebuilding the bundle will cause error for assetSizeLimit,
|
||||
* which we want to keep out of CI/CD
|
||||
* post build, cli command: npx webpack-bundle-analyzer <path>
|
||||
*/
|
||||
const configBuilder = require("./_config-builder")
|
||||
const { DuplicatesPlugin } = require("inspectpack/plugin")
|
||||
const {
|
||||
WebpackBundleSizeAnalyzerPlugin,
|
||||
} = require("webpack-bundle-size-analyzer")
|
||||
const nodeExternals = require("webpack-node-externals")
|
||||
// const { StatsWriterPlugin } = require("webpack-stats-plugin")
|
||||
|
||||
const minimize = true
|
||||
const sourcemaps = true
|
||||
|
||||
const result = configBuilder(
|
||||
{
|
||||
minimize,
|
||||
mangle: true,
|
||||
sourcemaps,
|
||||
includeDependencies: false,
|
||||
},
|
||||
{
|
||||
target: "browserslist",
|
||||
entry: {
|
||||
"swagger-ui-es-bundle-core": ["./src/index.js"],
|
||||
},
|
||||
experiments: {
|
||||
outputModule: true,
|
||||
},
|
||||
output: {
|
||||
module: true,
|
||||
libraryTarget: "module",
|
||||
library: {
|
||||
type: "module",
|
||||
},
|
||||
environment: {
|
||||
module: true,
|
||||
},
|
||||
},
|
||||
devtool: sourcemaps && minimize ? "source-map" : false,
|
||||
externalsType: "module",
|
||||
externals: [
|
||||
{
|
||||
esprima: "esprima",
|
||||
},
|
||||
nodeExternals({
|
||||
allowlist: [
|
||||
"deep-extend", // uses Buffer as global symbol
|
||||
"randombytes", // uses require('safe-buffer')
|
||||
"sha.js", // uses require('safe-buffer')
|
||||
/xml/, // uses require('stream')
|
||||
/process\/browser/, // is injected via ProvidePlugin
|
||||
/readable-stream/, // byproduct of buffer ProvidePlugin injection
|
||||
"util-deprecate", // dependency of readable-stream
|
||||
"inherits", // dependency of readable-stream
|
||||
"events", // dependency of readable-stream
|
||||
/safe-buffer/, // contained in resolve.alias
|
||||
/string_decoder/, // byproduct of buffer ProvidePlugin injection
|
||||
"buffer", // buffer is injected via ProvidePlugin
|
||||
],
|
||||
importType: (moduleName) => {
|
||||
return `module ${moduleName}`
|
||||
},
|
||||
}),
|
||||
],
|
||||
plugins: [
|
||||
new DuplicatesPlugin({
|
||||
emitErrors: false,
|
||||
verbose: false,
|
||||
}),
|
||||
new WebpackBundleSizeAnalyzerPlugin(
|
||||
"log.es-bundle-core-sizes.swagger-ui.txt"
|
||||
),
|
||||
// new StatsWriterPlugin({
|
||||
// filename: path.join("log.es-bundle-core-stats.swagger-ui.json"),
|
||||
// fields: null,
|
||||
// }),
|
||||
],
|
||||
}
|
||||
)
|
||||
|
||||
module.exports = result
|
||||
Reference in New Issue
Block a user