feat(build): es2015 bundle artifact (#6291)
* es2015 bundle with dependencies via npm script build:es:bundle * es2015 bundle without dependencies via npm script build:es:bundle * jest dependency for test:artifact * migrate babel.config.json to babel.config.js and maintain env support for commonjs and es2015 * remove polyfill * fix es syntax: replace module.exports with export * fix es syntax: remove .jsx extension inside import
This commit is contained in:
@@ -2,9 +2,18 @@
|
||||
* @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>
|
||||
*/
|
||||
|
||||
import configBuilder from "./_config-builder"
|
||||
import { DuplicatesPlugin } from "inspectpack/plugin"
|
||||
import { WebpackBundleSizeAnalyzerPlugin } from "webpack-bundle-size-analyzer"
|
||||
// import path from "path"
|
||||
// import { StatsWriterPlugin } from "webpack-stats-plugin"
|
||||
|
||||
const result = configBuilder(
|
||||
{
|
||||
@@ -16,8 +25,7 @@ const result = configBuilder(
|
||||
{
|
||||
entry: {
|
||||
"swagger-ui-bundle": [
|
||||
"./src/polyfills.js", // TODO: remove?
|
||||
"./src/core/index.js",
|
||||
"./src/index.js",
|
||||
],
|
||||
},
|
||||
output: {
|
||||
@@ -31,6 +39,10 @@ const result = configBuilder(
|
||||
verbose: false,
|
||||
}),
|
||||
new WebpackBundleSizeAnalyzerPlugin("log.bundle-sizes.swagger-ui.txt"),
|
||||
// new StatsWriterPlugin({
|
||||
// filename: path.join("log.bundle-stats.swagger-ui.json"),
|
||||
// fields: null,
|
||||
// }),
|
||||
]
|
||||
}
|
||||
)
|
||||
|
||||
@@ -14,8 +14,8 @@ const result = configBuilder(
|
||||
{
|
||||
entry: {
|
||||
"swagger-ui": [
|
||||
"./src/polyfills.js", // TODO: remove?
|
||||
"./src/core/index.js",
|
||||
// "./src/polyfills.js", // TODO: remove?
|
||||
"./src/index.js",
|
||||
],
|
||||
},
|
||||
|
||||
|
||||
51
webpack/es-bundle-core.babel.js
Normal file
51
webpack/es-bundle-core.babel.js
Normal file
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
* @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>
|
||||
*/
|
||||
|
||||
import configBuilder from "./_config-builder"
|
||||
import { DuplicatesPlugin } from "inspectpack/plugin"
|
||||
import { WebpackBundleSizeAnalyzerPlugin } from "webpack-bundle-size-analyzer"
|
||||
// import path from "path"
|
||||
// import { StatsWriterPlugin } from "webpack-stats-plugin"
|
||||
|
||||
const result = configBuilder(
|
||||
{
|
||||
minimize: true,
|
||||
mangle: true,
|
||||
sourcemaps: true,
|
||||
includeDependencies: false,
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
"swagger-ui-es-bundle-core": [
|
||||
"./src/index.js",
|
||||
],
|
||||
},
|
||||
output: {
|
||||
library: "SwaggerUIBundle",
|
||||
libraryTarget: "commonjs2",
|
||||
},
|
||||
plugins: [
|
||||
new DuplicatesPlugin({
|
||||
// emit compilation warning or error? (Default: `false`)
|
||||
emitErrors: false,
|
||||
// display full duplicates information? (Default: `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,
|
||||
// }),
|
||||
]
|
||||
}
|
||||
)
|
||||
|
||||
export default result
|
||||
51
webpack/es-bundle.babel.js
Normal file
51
webpack/es-bundle.babel.js
Normal file
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
* @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>
|
||||
*/
|
||||
|
||||
import configBuilder from "./_config-builder"
|
||||
import { DuplicatesPlugin } from "inspectpack/plugin"
|
||||
import { WebpackBundleSizeAnalyzerPlugin } from "webpack-bundle-size-analyzer"
|
||||
// import path from "path"
|
||||
// import { StatsWriterPlugin } from "webpack-stats-plugin"
|
||||
|
||||
const result = configBuilder(
|
||||
{
|
||||
minimize: true,
|
||||
mangle: true,
|
||||
sourcemaps: true,
|
||||
includeDependencies: true,
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
"swagger-ui-es-bundle": [
|
||||
"./src/index.js",
|
||||
],
|
||||
},
|
||||
output: {
|
||||
library: "SwaggerUIBundle",
|
||||
libraryTarget: "commonjs2",
|
||||
},
|
||||
plugins: [
|
||||
new DuplicatesPlugin({
|
||||
// emit compilation warning or error? (Default: `false`)
|
||||
emitErrors: false,
|
||||
// display full duplicates information? (Default: `false`)
|
||||
verbose: false,
|
||||
}),
|
||||
new WebpackBundleSizeAnalyzerPlugin("log.es-bundle-sizes.swagger-ui.txt"),
|
||||
// new StatsWriterPlugin({
|
||||
// filename: path.join("log.es-bundle-stats.swagger-ui.json"),
|
||||
// fields: null,
|
||||
// }),
|
||||
]
|
||||
}
|
||||
)
|
||||
|
||||
export default result
|
||||
Reference in New Issue
Block a user