From 12cdad44c973d295aaa2f5e038cf88235452015a Mon Sep 17 00:00:00 2001 From: Jinbao1001 Date: Wed, 21 Aug 2024 20:55:34 +0800 Subject: [PATCH 1/9] feat: support output bundler uncomporess --- src/builder/bundle/index.ts | 27 ++++----- src/builder/config.ts | 87 ++++++++++++++++++---------- src/features/configPlugins/schema.ts | 1 + src/types.ts | 7 +++ 4 files changed, 79 insertions(+), 43 deletions(-) diff --git a/src/builder/bundle/index.ts b/src/builder/bundle/index.ts index 548a2d54..ce74506a 100644 --- a/src/builder/bundle/index.ts +++ b/src/builder/bundle/index.ts @@ -31,7 +31,9 @@ interface IBundleOpts { incremental?: boolean; } -function bundle(opts: Omit): Promise; +function bundle( + opts: Omit, +): Promise; function bundle(opts: IBundleOpts): Promise; async function bundle(opts: IBundleOpts): Promise { const enableCache = process.env.FATHER_CACHE !== 'none'; @@ -68,7 +70,6 @@ async function bundle(opts: IBundleOpts): Promise { devtool: config.sourcemap && 'source-map', externals: config.externals, outputPath: config.output.path, - // postcss config extraPostCSSPlugins, postcssLoader, @@ -80,7 +81,7 @@ async function bundle(opts: IBundleOpts): Promise { // compatible with IE11 by default targets: getBundleTargets(config), - jsMinifier: JSMinifier.terser, + jsMinifier: config.jsMinifier, cssMinifier: CSSMinifier.cssnano, extraBabelIncludes: [/node_modules/], @@ -165,21 +166,21 @@ async function bundle(opts: IBundleOpts): Promise { // enable webpack persistent cache ...(enableCache ? { - cache: { - buildDependencies: opts.buildDependencies, - }, - } + cache: { + buildDependencies: opts.buildDependencies, + }, + } : {}), // collect close handlers for watch mode ...(opts.watch ? { - onBuildComplete({ isFirstCompile, close }: any) { - if (isFirstCompile) closeHandlers.push(close); - // log for watch mode - else logStatus(); - }, - } + onBuildComplete({ isFirstCompile, close }: any) { + if (isFirstCompile) closeHandlers.push(close); + // log for watch mode + else logStatus(); + }, + } : {}), disableCopy: true, }); diff --git a/src/builder/config.ts b/src/builder/config.ts index 38bb47d0..e8253471 100644 --- a/src/builder/config.ts +++ b/src/builder/config.ts @@ -1,3 +1,4 @@ +import { JSMinifier } from '@umijs/bundler-webpack/dist/types'; import { winPath } from '@umijs/utils'; import { Minimatch } from 'minimatch'; import path from 'path'; @@ -24,6 +25,7 @@ export interface IBundleConfig Omit { type: IFatherBuildTypes.BUNDLE; bundler: 'webpack'; + jsMinifier: JSMinifier; entry: string; output: { filename: string; @@ -111,55 +113,80 @@ export function normalizeUserConfig( const entryConfig = umd.entry; const output = typeof umd.output === 'object' ? umd.output : { path: umd.output }; - const bundleConfig: Omit = { - type: IFatherBuildTypes.BUNDLE, - bundler: 'webpack', - ...baseConfig, + const bundleConfig: Omit = + { + type: IFatherBuildTypes.BUNDLE, + bundler: 'webpack', + ...baseConfig, - // override base configs from umd config - ...umd, - - // generate default output - output: { - // default to generate filename from package name - filename: - output.filename || `${getAutoBundleFilename(pkg.name)}.min.js`, - // default to output dist - path: output.path || 'dist/umd', - }, - }; + // override base configs from umd config + ...umd, + }; if (typeof entryConfig === 'object') { - // extract multiple entries to single configs - Object.keys(entryConfig).forEach((entry) => { - const outputConfig = entryConfig[entry].output; + Object.entries(entryConfig).forEach(([entry, singleConfig]) => { + const outputConfig = singleConfig.output; const entryOutput = typeof outputConfig === 'object' ? outputConfig : { path: outputConfig }; - configs.push({ + const unminifiedConfig = { ...bundleConfig, - - // override all configs from entry config - ...entryConfig[entry], + ...singleConfig, entry, + jsMinifier: JSMinifier.none, + sourcemap: false, + output: { + filename: entryOutput.filename || `${path.parse(entry).name}.js`, + path: entryOutput.path || output.path || 'dist/umd', + }, + }; - // override output + const minifiedConfig = { + ...bundleConfig, + ...singleConfig, + entry, + jsMinifier: JSMinifier.terser, output: { filename: entryOutput.filename || `${path.parse(entry).name}.min.js`, - path: entryOutput.path || bundleConfig.output.path, + path: entryOutput.path || output.path || 'dist/umd', }, - }); + }; + + if (singleConfig.generateUnminified) { + configs.push(unminifiedConfig, minifiedConfig); + } else { + configs.push(minifiedConfig); + } }); } else { - // generate single entry to single config + const defaultEntry = entryConfig || 'src/index'; + const defaultOutput = { + filename: + output.filename || `${getAutoBundleFilename(pkg.name)}.min.js`, + path: output.path || 'dist/umd', + }; + + if (umd.generateUnminified) { + configs.push({ + ...bundleConfig, + entry: defaultEntry, + jsMinifier: JSMinifier.none, + sourcemap: false, + output: { + filename: `${getAutoBundleFilename(pkg.name)}.js`, + path: output.path || 'dist/umd', + }, + }); + } + configs.push({ ...bundleConfig, - - // default to bundle src/index - entry: entryConfig || 'src/index', + entry: defaultEntry, + jsMinifier: JSMinifier.terser, + output: defaultOutput, }); } } diff --git a/src/features/configPlugins/schema.ts b/src/features/configPlugins/schema.ts index dc19d91b..1bfc9dd4 100644 --- a/src/features/configPlugins/schema.ts +++ b/src/features/configPlugins/schema.ts @@ -64,6 +64,7 @@ export function getSchemas(): Record any> { Joi.string(), Joi.array(), ), + generateUnminified: Joi.boolean().optional(), chainWebpack: Joi.function().optional(), extractCSS: Joi.boolean().optional(), name: Joi.string().optional(), diff --git a/src/types.ts b/src/types.ts index 8d8f2557..7de151e4 100644 --- a/src/types.ts +++ b/src/types.ts @@ -221,6 +221,13 @@ export interface IFatherBundleConfig extends IFatherBaseConfig { * configure less variables */ theme?: Record; + + /** + * output unminified js file + * @default false + * @note When set to true, unminified js file will be generated in the same directory without sourcemap. + */ + generateUnminified?: boolean; } export interface IFatherPreBundleConfig { From cf6e64e8fc886696dcfdc47b42c6f6142ad0b075 Mon Sep 17 00:00:00 2001 From: Jinbao1001 Date: Wed, 21 Aug 2024 20:59:07 +0800 Subject: [PATCH 2/9] build: release 4.5.1-beta.1 --- boilerplate/package.json | 2 +- package.json | 12 +++---- pnpm-lock.yaml | 76 ++++++++++++++++++++-------------------- 3 files changed, 45 insertions(+), 45 deletions(-) diff --git a/boilerplate/package.json b/boilerplate/package.json index eebbf672..73ef1d19 100644 --- a/boilerplate/package.json +++ b/boilerplate/package.json @@ -1,6 +1,6 @@ { "name": "create-father", - "version": "4.5.0", + "version": "4.5.1-beta.1", "description": "Creator for father boilerplate", "homepage": "https://github.com/umijs/father/tree/master/boilerplate#readme", "bugs": "https://github.com/umijs/father/issues", diff --git a/package.json b/package.json index 4beec2be..7adf6f2e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "father", - "version": "4.5.0", + "version": "4.5.1-beta.1", "description": "A bundless/bundle build tool", "homepage": "https://github.com/umijs/father#readme", "bugs": "https://github.com/umijs/father/issues", @@ -43,12 +43,12 @@ }, "dependencies": { "@microsoft/api-extractor": "7.39.1", - "@umijs/babel-preset-umi": "^4.3.12", - "@umijs/bundler-utils": "^4.3.12", - "@umijs/bundler-webpack": "^4.3.12", + "@umijs/babel-preset-umi": "^4.3.14", + "@umijs/bundler-utils": "^4.3.14", + "@umijs/bundler-webpack": "^4.3.14", "@umijs/case-sensitive-paths-webpack-plugin": "^1.0.1", - "@umijs/core": "^4.3.12", - "@umijs/utils": "^4.3.12", + "@umijs/core": "^4.3.14", + "@umijs/utils": "^4.3.14", "@vercel/ncc": "0.33.3", "babel-plugin-dynamic-import-node": "2.3.3", "babel-plugin-module-resolver": "4.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bbdd8bc8..07ba49a9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,23 +12,23 @@ importers: specifier: 7.39.1 version: 7.39.1(@types/node@18.15.13) '@umijs/babel-preset-umi': - specifier: ^4.3.12 - version: 4.3.12 + specifier: ^4.3.14 + version: 4.3.14 '@umijs/bundler-utils': - specifier: ^4.3.12 - version: 4.3.12 + specifier: ^4.3.14 + version: 4.3.14 '@umijs/bundler-webpack': - specifier: ^4.3.12 - version: 4.3.12(typescript@5.3.3)(webpack@5.80.0) + specifier: ^4.3.14 + version: 4.3.14(typescript@5.3.3)(webpack@5.80.0) '@umijs/case-sensitive-paths-webpack-plugin': specifier: ^1.0.1 version: 1.0.1 '@umijs/core': - specifier: ^4.3.12 - version: 4.3.12 + specifier: ^4.3.14 + version: 4.3.14 '@umijs/utils': - specifier: ^4.3.12 - version: 4.3.12 + specifier: ^4.3.14 + version: 4.3.14 '@vercel/ncc': specifier: 0.33.3 version: 0.33.3 @@ -3761,24 +3761,24 @@ packages: dependencies: '@types/yargs-parser': 21.0.0 - /@umijs/babel-preset-umi@4.3.12: - resolution: {integrity: sha512-aItA/OUu5/cMcTC/QXBGLtcInedOnF2pBc5YhoAgsMN+lpkO5v/8tByfohqXT5/2LVzNH7x/H8ALjZWjO+WOVQ==} + /@umijs/babel-preset-umi@4.3.14: + resolution: {integrity: sha512-TKyRxxob41CjRHZyczzJ1HC77FvIJ8gmJ18Tzz5mf+l/80RGyEJvAymYcGkauF/xadnZ/IJWM8QT3wkIZWh6FQ==} dependencies: '@babel/runtime': 7.23.6 '@bloomberg/record-tuple-polyfill': 0.0.4 - '@umijs/bundler-utils': 4.3.12 - '@umijs/utils': 4.3.12 + '@umijs/bundler-utils': 4.3.14 + '@umijs/utils': 4.3.14 core-js: 3.34.0 transitivePeerDependencies: - supports-color dev: false - /@umijs/bundler-esbuild@4.3.12: - resolution: {integrity: sha512-docsxqwgxFMygpdosxI2mjL2sYuN7JBp7QcKD3qf/URrWOeo0lPq5Oi7YALrfVPEsHUimW7JVEYszCuo+U4//A==} + /@umijs/bundler-esbuild@4.3.14: + resolution: {integrity: sha512-CXLqRGR1tS4TUigSy+TOENejx9Yk2etl0c6vXMMbPQo2ApxFOZSm3ZmBqW29xlSnW5GPUZmofzzdtPzMT2v3eA==} hasBin: true dependencies: - '@umijs/bundler-utils': 4.3.12 - '@umijs/utils': 4.3.12 + '@umijs/bundler-utils': 4.3.14 + '@umijs/utils': 4.3.14 enhanced-resolve: 5.9.3 postcss: 8.4.31 postcss-flexbugs-fixes: 5.0.2(postcss@8.4.31) @@ -3799,10 +3799,10 @@ packages: - supports-color dev: true - /@umijs/bundler-utils@4.3.12: - resolution: {integrity: sha512-F9RjftHWtWgxrTBPpvzfqgAqsYHhgnPKQLFRokQzKaF+qPbK5CXj1DhePDWb9tFQxzKmkiCfzg419uVqjctloQ==} + /@umijs/bundler-utils@4.3.14: + resolution: {integrity: sha512-suBbbetqCwz2zW5nIZTpuLZm9Kd/oQkuLkRo9NVUSPeydvrPJDGocF0KtlfYa6P4G8zdjAS+PizjEuJssbSpIw==} dependencies: - '@umijs/utils': 4.3.12 + '@umijs/utils': 4.3.14 esbuild: 0.21.4 regenerate: 1.4.2 regenerate-unicode-properties: 10.1.1 @@ -3811,20 +3811,20 @@ packages: - supports-color dev: false - /@umijs/bundler-webpack@4.3.12(typescript@5.3.3)(webpack@5.80.0): - resolution: {integrity: sha512-WDLK2Y7arX+S60OO/p6pM4G+YcLidLOGbpGcvm5IHUcpMyJltPfLTN/xvVd+Gyn3TXxMaLA16BEiTDTUSrpohA==} + /@umijs/bundler-webpack@4.3.14(typescript@5.3.3)(webpack@5.80.0): + resolution: {integrity: sha512-ppZoa5KxMpYl9KyN+rJzVXHYEIneIluqOErMJ795BC5pAgy0/lffUoUC/PHtZ5ndycfNE2xmygiUgyErBX92ug==} hasBin: true dependencies: '@svgr/core': 6.5.1 '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) '@types/hapi__joi': 17.1.9 - '@umijs/babel-preset-umi': 4.3.12 - '@umijs/bundler-utils': 4.3.12 + '@umijs/babel-preset-umi': 4.3.14 + '@umijs/bundler-utils': 4.3.14 '@umijs/case-sensitive-paths-webpack-plugin': 1.0.1 - '@umijs/mfsu': 4.3.12 + '@umijs/mfsu': 4.3.14 '@umijs/react-refresh-webpack-plugin': 0.5.11(react-refresh@0.14.0)(webpack@5.80.0) - '@umijs/utils': 4.3.12 + '@umijs/utils': 4.3.14 cors: 2.8.5 css-loader: 6.7.1(webpack@5.80.0) es5-imcompatible-versions: 0.1.80 @@ -3852,21 +3852,21 @@ packages: resolution: {integrity: sha512-kDKJ8yTarxwxGJDInG33hOpaQRZ//XpNuuznQ/1Mscypw6kappzFmrBr2dOYave++K7JHouoANF354UpbEQw0Q==} dev: false - /@umijs/core@4.3.12: - resolution: {integrity: sha512-PdrzIxpicKTN0jTqJ3Rl+BTVXP/gNIjy7+Sn/z3AgbgZek2EObPsV72sXvMbTzvqLL35XPdZF+Ci9CnLXVGZTQ==} + /@umijs/core@4.3.14: + resolution: {integrity: sha512-HYva5iHV+W/RfV5JiM27BfKCHHUNWzWJFvPrR7tktnZ9R1TlyYXRyfdIyhCfhqX6fnSVr1pWdkdbhwwaFe2n8Q==} dependencies: - '@umijs/bundler-utils': 4.3.12 - '@umijs/utils': 4.3.12 + '@umijs/bundler-utils': 4.3.14 + '@umijs/utils': 4.3.14 transitivePeerDependencies: - supports-color dev: false - /@umijs/mfsu@4.3.12: - resolution: {integrity: sha512-yryvvFTpbqgkZtnzPzHQj4/kYkl0hTKUnDr7KY0qq212y8lnykFD/afsmSk5IX0TEeel2bwYZV4a5RUEq1ahOA==} + /@umijs/mfsu@4.3.14: + resolution: {integrity: sha512-ncFpvdrB/9mqPBsYz+jMHkw3MtcpGF8SuF8wQrAS9B6XiYvq+c0xj36/lXYx9ARJzqw5NzACiVDqCFw2tRm/IQ==} dependencies: - '@umijs/bundler-esbuild': 4.3.12 - '@umijs/bundler-utils': 4.3.12 - '@umijs/utils': 4.3.12 + '@umijs/bundler-esbuild': 4.3.14 + '@umijs/bundler-utils': 4.3.14 + '@umijs/utils': 4.3.14 enhanced-resolve: 5.9.3 is-equal: 1.6.4 transitivePeerDependencies: @@ -3942,8 +3942,8 @@ packages: pino: 7.11.0 dev: true - /@umijs/utils@4.3.12: - resolution: {integrity: sha512-mq7zm9HEcOmnf7uaedZlu1pVL65FFPjTIuyY0RvggETaAwfoeYBwQQQktPS8icjbpWlf4pe14a2cT/emVXjweQ==} + /@umijs/utils@4.3.14: + resolution: {integrity: sha512-URiufQpF9bRIIo5Fmjve29zFrEQ9AdDM/WpSX/P2e/lR3DHsgiviFQiruE2fb++UZH8/v2A+t/AuAwkZdWcF/Q==} dependencies: chokidar: 3.5.3 pino: 7.11.0 From a4bd9f69acff8dff2668b7b5eb937ae52c2a0b7e Mon Sep 17 00:00:00 2001 From: Jinbao1001 Date: Thu, 22 Aug 2024 15:33:55 +0800 Subject: [PATCH 3/9] fix: filename --- src/builder/config.ts | 62 ++++++++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/src/builder/config.ts b/src/builder/config.ts index e8253471..4487809c 100644 --- a/src/builder/config.ts +++ b/src/builder/config.ts @@ -1,5 +1,6 @@ import { JSMinifier } from '@umijs/bundler-webpack/dist/types'; import { winPath } from '@umijs/utils'; +import assert from 'assert'; import { Minimatch } from 'minimatch'; import path from 'path'; import { loadConfig } from 'tsconfig-paths'; @@ -126,22 +127,17 @@ export function normalizeUserConfig( if (typeof entryConfig === 'object') { Object.entries(entryConfig).forEach(([entry, singleConfig]) => { const outputConfig = singleConfig.output; + const entryOutput = typeof outputConfig === 'object' ? outputConfig : { path: outputConfig }; - - const unminifiedConfig = { - ...bundleConfig, - ...singleConfig, - entry, - jsMinifier: JSMinifier.none, - sourcemap: false, - output: { - filename: entryOutput.filename || `${path.parse(entry).name}.js`, - path: entryOutput.path || output.path || 'dist/umd', - }, - }; + if (singleConfig.generateUnminified) { + assert( + !entryOutput.filename?.includes('.min'), + 'if set generateUnminified enabled, you need to delete ".min" in the output filename config', + ); + } const minifiedConfig = { ...bundleConfig, @@ -149,13 +145,27 @@ export function normalizeUserConfig( entry, jsMinifier: JSMinifier.terser, output: { - filename: - entryOutput.filename || `${path.parse(entry).name}.min.js`, + filename: entryOutput.filename + ? `${entryOutput.filename}${ + singleConfig.generateUnminified ? '.min' : '' + }.js` + : `${path.parse(entry).name}.min.js`, path: entryOutput.path || output.path || 'dist/umd', }, }; if (singleConfig.generateUnminified) { + const unminifiedConfig = { + ...bundleConfig, + ...singleConfig, + entry, + jsMinifier: JSMinifier.none, + sourcemap: false, + output: { + filename: entryOutput.filename || `${path.parse(entry).name}.js`, + path: entryOutput.path || output.path || 'dist/umd', + }, + }; configs.push(unminifiedConfig, minifiedConfig); } else { configs.push(minifiedConfig); @@ -163,20 +173,23 @@ export function normalizeUserConfig( }); } else { const defaultEntry = entryConfig || 'src/index'; - const defaultOutput = { - filename: - output.filename || `${getAutoBundleFilename(pkg.name)}.min.js`, - path: output.path || 'dist/umd', - }; - + const defaultFileName = getAutoBundleFilename(pkg.name); if (umd.generateUnminified) { + if (umd.generateUnminified) { + assert( + !output.filename?.includes('.min'), + 'if set generateUnminified enabled, you need to delete ".min" in the output filename config', + ); + } configs.push({ ...bundleConfig, entry: defaultEntry, jsMinifier: JSMinifier.none, sourcemap: false, output: { - filename: `${getAutoBundleFilename(pkg.name)}.js`, + filename: output.filename + ? `${output.filename}.js` + : `${defaultFileName}.js`, path: output.path || 'dist/umd', }, }); @@ -186,7 +199,12 @@ export function normalizeUserConfig( ...bundleConfig, entry: defaultEntry, jsMinifier: JSMinifier.terser, - output: defaultOutput, + output: { + filename: output.filename + ? `${output.filename}${umd.generateUnminified ? '.min' : ''}.js` + : `${defaultFileName}.min.js`, + path: output.path || 'dist/umd', + }, }); } } From 6586a4fccb8f6b9590121456a92a6d78923e7be8 Mon Sep 17 00:00:00 2001 From: Jinbao1001 Date: Thu, 22 Aug 2024 15:35:17 +0800 Subject: [PATCH 4/9] build: release 4.5.1-beta.2 --- boilerplate/package.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/boilerplate/package.json b/boilerplate/package.json index 73ef1d19..8092ac2d 100644 --- a/boilerplate/package.json +++ b/boilerplate/package.json @@ -1,6 +1,6 @@ { "name": "create-father", - "version": "4.5.1-beta.1", + "version": "4.5.1-beta.2", "description": "Creator for father boilerplate", "homepage": "https://github.com/umijs/father/tree/master/boilerplate#readme", "bugs": "https://github.com/umijs/father/issues", diff --git a/package.json b/package.json index 7adf6f2e..924ea46c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "father", - "version": "4.5.1-beta.1", + "version": "4.5.1-beta.2", "description": "A bundless/bundle build tool", "homepage": "https://github.com/umijs/father#readme", "bugs": "https://github.com/umijs/father/issues", From b772c4a6c00d909fbcc54c31323ff351db7ec6db Mon Sep 17 00:00:00 2001 From: Jinbao1001 Date: Thu, 22 Aug 2024 15:46:45 +0800 Subject: [PATCH 5/9] fix: test --- src/builder/config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/builder/config.ts b/src/builder/config.ts index 4487809c..5a4d6924 100644 --- a/src/builder/config.ts +++ b/src/builder/config.ts @@ -148,7 +148,7 @@ export function normalizeUserConfig( filename: entryOutput.filename ? `${entryOutput.filename}${ singleConfig.generateUnminified ? '.min' : '' - }.js` + }` : `${path.parse(entry).name}.min.js`, path: entryOutput.path || output.path || 'dist/umd', }, @@ -201,7 +201,7 @@ export function normalizeUserConfig( jsMinifier: JSMinifier.terser, output: { filename: output.filename - ? `${output.filename}${umd.generateUnminified ? '.min' : ''}.js` + ? `${output.filename}${umd.generateUnminified ? '.min' : ''}` : `${defaultFileName}.min.js`, path: output.path || 'dist/umd', }, From ba8e33c5f3fdfaaff791b764ea91562d57a7a557 Mon Sep 17 00:00:00 2001 From: Jinbao1001 Date: Thu, 22 Aug 2024 15:50:03 +0800 Subject: [PATCH 6/9] build: release 4.5.1-beta.3 --- boilerplate/package.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/boilerplate/package.json b/boilerplate/package.json index 8092ac2d..e146c15a 100644 --- a/boilerplate/package.json +++ b/boilerplate/package.json @@ -1,6 +1,6 @@ { "name": "create-father", - "version": "4.5.1-beta.2", + "version": "4.5.1-beta.3", "description": "Creator for father boilerplate", "homepage": "https://github.com/umijs/father/tree/master/boilerplate#readme", "bugs": "https://github.com/umijs/father/issues", diff --git a/package.json b/package.json index 924ea46c..af4049e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "father", - "version": "4.5.1-beta.2", + "version": "4.5.1-beta.3", "description": "A bundless/bundle build tool", "homepage": "https://github.com/umijs/father#readme", "bugs": "https://github.com/umijs/father/issues", From 4b93f51171331b508e765b95797f30338ae25493 Mon Sep 17 00:00:00 2001 From: Jinbao1001 Date: Thu, 22 Aug 2024 17:25:31 +0800 Subject: [PATCH 7/9] fix: cover js --- src/builder/config.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/builder/config.ts b/src/builder/config.ts index 5a4d6924..bed65d8f 100644 --- a/src/builder/config.ts +++ b/src/builder/config.ts @@ -146,9 +146,10 @@ export function normalizeUserConfig( jsMinifier: JSMinifier.terser, output: { filename: entryOutput.filename - ? `${entryOutput.filename}${ - singleConfig.generateUnminified ? '.min' : '' - }` + ? entryOutput.filename.replace( + /(\.js)?$/, + singleConfig.generateUnminified ? '.min.js' : '.js', + ) : `${path.parse(entry).name}.min.js`, path: entryOutput.path || output.path || 'dist/umd', }, @@ -175,12 +176,10 @@ export function normalizeUserConfig( const defaultEntry = entryConfig || 'src/index'; const defaultFileName = getAutoBundleFilename(pkg.name); if (umd.generateUnminified) { - if (umd.generateUnminified) { - assert( - !output.filename?.includes('.min'), - 'if set generateUnminified enabled, you need to delete ".min" in the output filename config', - ); - } + assert( + !output.filename?.includes('.min'), + 'if set generateUnminified enabled, you need to delete ".min" in the output filename config', + ); configs.push({ ...bundleConfig, entry: defaultEntry, @@ -188,7 +187,7 @@ export function normalizeUserConfig( sourcemap: false, output: { filename: output.filename - ? `${output.filename}.js` + ? `${output.filename}` : `${defaultFileName}.js`, path: output.path || 'dist/umd', }, @@ -201,7 +200,10 @@ export function normalizeUserConfig( jsMinifier: JSMinifier.terser, output: { filename: output.filename - ? `${output.filename}${umd.generateUnminified ? '.min' : ''}` + ? output.filename.replace( + /(\.js)?$/, + umd.generateUnminified ? '.min.js' : '.js', + ) : `${defaultFileName}.min.js`, path: output.path || 'dist/umd', }, From dc8714870805a37b45386ce82eb12fbaefcb9ceb Mon Sep 17 00:00:00 2001 From: Jinbao1001 Date: Thu, 22 Aug 2024 17:44:45 +0800 Subject: [PATCH 8/9] fix: assert --- src/builder/config.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/builder/config.ts b/src/builder/config.ts index bed65d8f..8463b58b 100644 --- a/src/builder/config.ts +++ b/src/builder/config.ts @@ -132,12 +132,13 @@ export function normalizeUserConfig( typeof outputConfig === 'object' ? outputConfig : { path: outputConfig }; - if (singleConfig.generateUnminified) { - assert( - !entryOutput.filename?.includes('.min'), - 'if set generateUnminified enabled, you need to delete ".min" in the output filename config', - ); - } + assert( + !( + singleConfig.generateUnminified && + entryOutput.filename?.includes('.min') + ), + 'if set generateUnminified enabled, you need to delete ".min" in the output filename config', + ); const minifiedConfig = { ...bundleConfig, From 97adfdea4931377660360164987e2085340a0bee Mon Sep 17 00:00:00 2001 From: Jinbao1001 Date: Fri, 23 Aug 2024 10:35:07 +0800 Subject: [PATCH 9/9] build: release 4.5.1-beta.4 --- boilerplate/package.json | 2 +- package.json | 12 +++---- pnpm-lock.yaml | 76 ++++++++++++++++++++-------------------- 3 files changed, 45 insertions(+), 45 deletions(-) diff --git a/boilerplate/package.json b/boilerplate/package.json index e146c15a..75e4bde5 100644 --- a/boilerplate/package.json +++ b/boilerplate/package.json @@ -1,6 +1,6 @@ { "name": "create-father", - "version": "4.5.1-beta.3", + "version": "4.5.1-beta.4", "description": "Creator for father boilerplate", "homepage": "https://github.com/umijs/father/tree/master/boilerplate#readme", "bugs": "https://github.com/umijs/father/issues", diff --git a/package.json b/package.json index af4049e4..101a46e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "father", - "version": "4.5.1-beta.3", + "version": "4.5.1-beta.4", "description": "A bundless/bundle build tool", "homepage": "https://github.com/umijs/father#readme", "bugs": "https://github.com/umijs/father/issues", @@ -43,12 +43,12 @@ }, "dependencies": { "@microsoft/api-extractor": "7.39.1", - "@umijs/babel-preset-umi": "^4.3.14", - "@umijs/bundler-utils": "^4.3.14", - "@umijs/bundler-webpack": "^4.3.14", + "@umijs/babel-preset-umi": "^4.3.15", + "@umijs/bundler-utils": "^4.3.15", + "@umijs/bundler-webpack": "^4.3.15", "@umijs/case-sensitive-paths-webpack-plugin": "^1.0.1", - "@umijs/core": "^4.3.14", - "@umijs/utils": "^4.3.14", + "@umijs/core": "^4.3.15", + "@umijs/utils": "^4.3.15", "@vercel/ncc": "0.33.3", "babel-plugin-dynamic-import-node": "2.3.3", "babel-plugin-module-resolver": "4.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 07ba49a9..db2e8538 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,23 +12,23 @@ importers: specifier: 7.39.1 version: 7.39.1(@types/node@18.15.13) '@umijs/babel-preset-umi': - specifier: ^4.3.14 - version: 4.3.14 + specifier: ^4.3.15 + version: 4.3.15 '@umijs/bundler-utils': - specifier: ^4.3.14 - version: 4.3.14 + specifier: ^4.3.15 + version: 4.3.15 '@umijs/bundler-webpack': - specifier: ^4.3.14 - version: 4.3.14(typescript@5.3.3)(webpack@5.80.0) + specifier: ^4.3.15 + version: 4.3.15(typescript@5.3.3)(webpack@5.80.0) '@umijs/case-sensitive-paths-webpack-plugin': specifier: ^1.0.1 version: 1.0.1 '@umijs/core': - specifier: ^4.3.14 - version: 4.3.14 + specifier: ^4.3.15 + version: 4.3.15 '@umijs/utils': - specifier: ^4.3.14 - version: 4.3.14 + specifier: ^4.3.15 + version: 4.3.15 '@vercel/ncc': specifier: 0.33.3 version: 0.33.3 @@ -3761,24 +3761,24 @@ packages: dependencies: '@types/yargs-parser': 21.0.0 - /@umijs/babel-preset-umi@4.3.14: - resolution: {integrity: sha512-TKyRxxob41CjRHZyczzJ1HC77FvIJ8gmJ18Tzz5mf+l/80RGyEJvAymYcGkauF/xadnZ/IJWM8QT3wkIZWh6FQ==} + /@umijs/babel-preset-umi@4.3.15: + resolution: {integrity: sha512-/MHrPUUQzntcgBayYFGchtHnUaDYNhFCofp+DSIYJHkEI7jTyH/P5Jx3sdeYQSW+WotIl1jrigz4Z5x8Anu9mg==} dependencies: '@babel/runtime': 7.23.6 '@bloomberg/record-tuple-polyfill': 0.0.4 - '@umijs/bundler-utils': 4.3.14 - '@umijs/utils': 4.3.14 + '@umijs/bundler-utils': 4.3.15 + '@umijs/utils': 4.3.15 core-js: 3.34.0 transitivePeerDependencies: - supports-color dev: false - /@umijs/bundler-esbuild@4.3.14: - resolution: {integrity: sha512-CXLqRGR1tS4TUigSy+TOENejx9Yk2etl0c6vXMMbPQo2ApxFOZSm3ZmBqW29xlSnW5GPUZmofzzdtPzMT2v3eA==} + /@umijs/bundler-esbuild@4.3.15: + resolution: {integrity: sha512-C11IOdCXeJxYVHOehXp3eTFyegRjkSN5gVPaT6qylR5DkicKpNF/fQDQKDbWjq58up4vV9djy0+c+RxmCgNYGQ==} hasBin: true dependencies: - '@umijs/bundler-utils': 4.3.14 - '@umijs/utils': 4.3.14 + '@umijs/bundler-utils': 4.3.15 + '@umijs/utils': 4.3.15 enhanced-resolve: 5.9.3 postcss: 8.4.31 postcss-flexbugs-fixes: 5.0.2(postcss@8.4.31) @@ -3799,10 +3799,10 @@ packages: - supports-color dev: true - /@umijs/bundler-utils@4.3.14: - resolution: {integrity: sha512-suBbbetqCwz2zW5nIZTpuLZm9Kd/oQkuLkRo9NVUSPeydvrPJDGocF0KtlfYa6P4G8zdjAS+PizjEuJssbSpIw==} + /@umijs/bundler-utils@4.3.15: + resolution: {integrity: sha512-PY0dPOzLl2mIDL8luD/10X301R6mAP6vFOr4kXyR9wsze6ZfODxDpsnM2K+2K/EqFUgwXRLlVRLjEratGSQ0RQ==} dependencies: - '@umijs/utils': 4.3.14 + '@umijs/utils': 4.3.15 esbuild: 0.21.4 regenerate: 1.4.2 regenerate-unicode-properties: 10.1.1 @@ -3811,20 +3811,20 @@ packages: - supports-color dev: false - /@umijs/bundler-webpack@4.3.14(typescript@5.3.3)(webpack@5.80.0): - resolution: {integrity: sha512-ppZoa5KxMpYl9KyN+rJzVXHYEIneIluqOErMJ795BC5pAgy0/lffUoUC/PHtZ5ndycfNE2xmygiUgyErBX92ug==} + /@umijs/bundler-webpack@4.3.15(typescript@5.3.3)(webpack@5.80.0): + resolution: {integrity: sha512-sczSsOZKlRpHIJJApZLQTocPRJdYdFxmiQJkeY3SLwMZBYX7zRABHb+YTRGIdFbDXSlrKLAnUPrx6OHhxU/4fw==} hasBin: true dependencies: '@svgr/core': 6.5.1 '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) '@types/hapi__joi': 17.1.9 - '@umijs/babel-preset-umi': 4.3.14 - '@umijs/bundler-utils': 4.3.14 + '@umijs/babel-preset-umi': 4.3.15 + '@umijs/bundler-utils': 4.3.15 '@umijs/case-sensitive-paths-webpack-plugin': 1.0.1 - '@umijs/mfsu': 4.3.14 + '@umijs/mfsu': 4.3.15 '@umijs/react-refresh-webpack-plugin': 0.5.11(react-refresh@0.14.0)(webpack@5.80.0) - '@umijs/utils': 4.3.14 + '@umijs/utils': 4.3.15 cors: 2.8.5 css-loader: 6.7.1(webpack@5.80.0) es5-imcompatible-versions: 0.1.80 @@ -3852,21 +3852,21 @@ packages: resolution: {integrity: sha512-kDKJ8yTarxwxGJDInG33hOpaQRZ//XpNuuznQ/1Mscypw6kappzFmrBr2dOYave++K7JHouoANF354UpbEQw0Q==} dev: false - /@umijs/core@4.3.14: - resolution: {integrity: sha512-HYva5iHV+W/RfV5JiM27BfKCHHUNWzWJFvPrR7tktnZ9R1TlyYXRyfdIyhCfhqX6fnSVr1pWdkdbhwwaFe2n8Q==} + /@umijs/core@4.3.15: + resolution: {integrity: sha512-eV4kVdBDkFoJgRegLornPO5o4TMuidViLmjVTDA6/NrXTcFI4zqg/c7ZPAzWPNg2hkxu1/Np/GyBCOj0iIJQLA==} dependencies: - '@umijs/bundler-utils': 4.3.14 - '@umijs/utils': 4.3.14 + '@umijs/bundler-utils': 4.3.15 + '@umijs/utils': 4.3.15 transitivePeerDependencies: - supports-color dev: false - /@umijs/mfsu@4.3.14: - resolution: {integrity: sha512-ncFpvdrB/9mqPBsYz+jMHkw3MtcpGF8SuF8wQrAS9B6XiYvq+c0xj36/lXYx9ARJzqw5NzACiVDqCFw2tRm/IQ==} + /@umijs/mfsu@4.3.15: + resolution: {integrity: sha512-0zJAfs67wqiRum7ZhxrjZGxDMlFUmJtySp+JaC5fuxwjuG1zOP7uUcEJo22nxL3iQ3JaepwLyqGdsUQerjoG4g==} dependencies: - '@umijs/bundler-esbuild': 4.3.14 - '@umijs/bundler-utils': 4.3.14 - '@umijs/utils': 4.3.14 + '@umijs/bundler-esbuild': 4.3.15 + '@umijs/bundler-utils': 4.3.15 + '@umijs/utils': 4.3.15 enhanced-resolve: 5.9.3 is-equal: 1.6.4 transitivePeerDependencies: @@ -3942,8 +3942,8 @@ packages: pino: 7.11.0 dev: true - /@umijs/utils@4.3.14: - resolution: {integrity: sha512-URiufQpF9bRIIo5Fmjve29zFrEQ9AdDM/WpSX/P2e/lR3DHsgiviFQiruE2fb++UZH8/v2A+t/AuAwkZdWcF/Q==} + /@umijs/utils@4.3.15: + resolution: {integrity: sha512-fME5A83n6PlHpyletK4KTP0pvgXOlxDsjf4JGYBbD+WgmjiwHqXdS76+gKNDAVC57lCuMXIR5DneL1rCyOBPJA==} dependencies: chokidar: 3.5.3 pino: 7.11.0