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:
Tim Lai
2020-08-13 17:21:55 -07:00
committed by GitHub
parent d9f5691f65
commit 2eaa6c10e4
22 changed files with 4296 additions and 32 deletions

View File

@@ -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,
// }),
]
}
)

View File

@@ -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",
],
},

View 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

View 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